From 707810cf18f1fb918e01c0f57a22d9d6bfa41a3f Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Thu, 23 Feb 2023 15:26:48 +0000 Subject: [PATCH 01/78] Add python backend --- backend python/backend.py | 55 +++++++ backend python/common.py | 51 ++++++ backend python/thormonitor_collect_data.py | 148 +++++++++++++++++ .../thormonitor_collect_data_rpc_bifrost.py | 66 ++++++++ backend python/thormonitor_update_ips.py | 46 ++++++ .../thornode_collect_data_global.py | 149 ++++++++++++++++++ 6 files changed, 515 insertions(+) create mode 100644 backend python/backend.py create mode 100644 backend python/common.py create mode 100644 backend python/thormonitor_collect_data.py create mode 100644 backend python/thormonitor_collect_data_rpc_bifrost.py create mode 100644 backend python/thormonitor_update_ips.py create mode 100644 backend python/thornode_collect_data_global.py diff --git a/backend python/backend.py b/backend python/backend.py new file mode 100644 index 0000000..e206ecd --- /dev/null +++ b/backend python/backend.py @@ -0,0 +1,55 @@ +import time + +from common import grabQuery +from flask import Flask +from flask_cors import CORS, cross_origin +from thormonitor_collect_data import gradDataAndSaveToDB +from thormonitor_update_ips import updateIPs +from thornode_collect_data_global import collectDataGlobal +from thormonitor_collect_data_rpc_bifrost import biFrostGrabDataAndSaveToDB + +from threading import Thread + +app = Flask(__name__) +cors = CORS(app) +app.config['CORS_HEADERS'] = 'Content-Type' + + +def flaskThread(): + app.run(host='0.0.0.0', port=6000) + + +@app.route('/thor/api/grabData', methods=['GET']) +@cross_origin() +def grabData(): + """ + grabData is used to output the DB in json format, fires on api accesses + + return: json containing the current data from thornode_monitor and thornode_monitor_global tables + """ + currentDBData = (grabQuery('SELECT * FROM noderunner.thornode_monitor')) + globalData = (grabQuery('SELECT * FROM noderunner.thornode_monitor_global')) + + return {'data': currentDBData, 'globalData': globalData[0]} + + +def main(): + """ + main contains the main loop which simply spins every minuite and update the various DBs + """ + worker = Thread(target=flaskThread) + worker.start() + + while (1): + try: + gradDataAndSaveToDB() + updateIPs() + collectDataGlobal() + biFrostGrabDataAndSaveToDB() + except Exception as e: + print(e) + time.sleep(60) + + +if __name__ == "__main__": + main() diff --git a/backend python/common.py b/backend python/common.py new file mode 100644 index 0000000..2b43d2b --- /dev/null +++ b/backend python/common.py @@ -0,0 +1,51 @@ +from dotenv import load_dotenv +import mysql.connector +import os + +HOST = os.getenv('host') +USER = os.getenv('user') +PASSWORD = os.getenv('password') +DATABASE = os.getenv('db') + +load_dotenv() + + +def getDB(): + """ + getDB is used to get a sql connector for the db defined in the env file + + :return: db connection + """ + dbConnection = mysql.connector.connect(host=HOST, user=USER, password=PASSWORD, database=DATABASE) + return dbConnection + + + +def commitQuery(query): + """ + commitQuery is used to update items in the database + + :param query: SQL query to be run against the DB + """ + db = getDB() + cursor = db.cursor(prepared=True, dictionary=True) + cursor.execute(query) + db.commit() + cursor.close() + db.close() + + +def grabQuery(query): + """ + grabQuery is used to grab data from the DB + + :param query: SQL query to be run against the DB + :return: returns the output of the query in dictionary format + """ + db = getDB() + cursor = db.cursor(prepared=True, dictionary=True) + cursor.execute(query) + data = cursor.fetchall() + cursor.close() + db.close() + return data diff --git a/backend python/thormonitor_collect_data.py b/backend python/thormonitor_collect_data.py new file mode 100644 index 0000000..bc5c671 --- /dev/null +++ b/backend python/thormonitor_collect_data.py @@ -0,0 +1,148 @@ +import time + +import requests +import json +import random +from common import commitQuery, grabQuery + + +def grabLatestBlockHeight(nodes): + """ + grabLatestBlockHeight looks at 3 random nodes in the active pool and returns the max height from those 3 nodes + + :param nodes: all thor nodes currently on the network pulled from ninerelms api + + :return: the latest block height + """ + activeNodes = [x for x in nodes if "Active" == x['status']] + + status_code = 0 + while status_code != 200: + randomOffsets = [random.randint(0, len(activeNodes) - 1), random.randint(0, len(activeNodes) - 1), + random.randint(0, len(activeNodes) - 1)] + + status = [] + for i in range(0, len(randomOffsets)): + try: + state = requests.get('http://' + activeNodes[randomOffsets[i]]['ip_address'] + ":27147/status?", + timeout=5) + if state.status_code == 200: + status.append(json.loads(state.text)) + except Exception as e: + print("timed out") + + #check if we have any blocks, if yes break from loop if not try another 3 random nodes + if len(status) != 0: + status_code = 200 + + blocks = [x['result']['sync_info']['latest_block_height'] for x in status] + + return max(blocks) + + +def splitNodes(nodes): + """ + splitNodes compares the list of nodes currently in the DB and what is returned by ninerelms API + + :param nodes: all thor nodes currently on the network pulled from ninerelms api + + :return dataForExistingNodes: list of nodes already in our DB + :return dataForNewNodes: list of nodes not already in our DB + """ + currentDBData = (grabQuery('SELECT * FROM noderunner.thornode_monitor')) + fullAddrList = [x['node_address'] for x in nodes] + currentAddrList = [x['node_address'] for x in currentDBData] + newList = list(set(fullAddrList).symmetric_difference(set(currentAddrList))) + + dataForExistingNodes = [x for x in nodes if x['node_address'] in currentAddrList] + dataForNewNodes = [x for x in nodes if x['node_address'] in newList] + + return dataForExistingNodes, dataForNewNodes + + +def gradDataAndSaveToDB(): + """ + gradDataAndSaveToDB used to update thornode_monitor_global database + """ + response_API = requests.get('https://thornode.ninerealms.com/thorchain/nodes') + data = json.loads(response_API.text) + # sanitise data remove any empty elements + nodes = [x for x in data if '' != x['node_address']] + + maxHeight = grabLatestBlockHeight(nodes) + + query = 'UPDATE noderunner.thornode_monitor_global SET maxHeight = {field} WHERE primary_key = 1;'.format( + field=maxHeight) + commitQuery(query) + + # check if we are in a churn + + dataForExistingNodes, dataForNewNodes = splitNodes(nodes) + for node in dataForExistingNodes: + query = "UPDATE noderunner.thornode_monitor SET " \ + "active_block_height = '{active_block_height}'," \ + "bond_providers = '{bond_providers}'," \ + "bond = '{bond}'," \ + "current_award = '{current_award}'," \ + "slash_points = '{slash_points}'," \ + "forced_to_leave = '{forced_to_leave}'," \ + "requested_to_leave = '{requested_to_leave}'," \ + "jail = '{jail}' ," \ + "bond_address = '{bond_address}'," \ + "observe_chains = '{observe_chains}'," \ + "preflight_status = '{preflight_status}'," \ + "status = '{status}'," \ + "status_since = '{status_since}'," \ + "version = '{version}' WHERE (node_address = '{node_address}');".format( + active_block_height=node['active_block_height'], + bond_providers=json.dumps(node['bond_providers']), + bond=int(node['total_bond']), + current_award=int(node['current_award']), + slash_points=node['slash_points'], + forced_to_leave=int(node['forced_to_leave']), + requested_to_leave=int(node['requested_to_leave']), + jail=json.dumps(node['jail']), bond_address='', + observe_chains=json.dumps(node['observe_chains']), + preflight_status=json.dumps(node['preflight_status']), + status=node['status'], + status_since=node['status_since'], version=node['version'], node_address=node['node_address']) + commitQuery(query) + + # Loop over new nodes and grab IP addr + for node in dataForNewNodes: + if node['ip_address'] != "": + response_code = 0 + while response_code != 200: + response = requests.get("http://ip-api.com/json/" + node['ip_address']) + response_code = response.status_code + if response_code == 429: + print("rate limited wait 60seconds") + time.sleep(60) + elif response_code == 200: + ip_data = json.loads(response.text) + node['ip_data'] = ip_data + + else: + node['ip_data'] = {} + node['ip_data']['city'] = "" + node['ip_data']['isp'] = "" + + query = "INSERT INTO noderunner.thornode_monitor (node_address, ip_address, location, isp, " \ + "active_block_height, bond_providers, bond, current_award, slash_points,forced_to_leave, " \ + "requested_to_leave, jail, bond_address, observe_chains, preflight_status, status, " \ + "status_since, version) VALUES ('{node_address}', '{ip_address}','{city}','{isp}'," \ + "'{active_block_height}','{bond_providers}','{bond}','{current_award}','{slash_points}'," \ + "'{forced_to_leave}','{requested_to_leave}', '{jail}','{bond_address}'," \ + "'{observe_chains}','{preflight_status}','{status}','{status_since}'," \ + "'{version}')".format(node_address=node['node_address'], ip_address=node['ip_address'], + city=node['ip_data']['city'], isp=node['ip_data']['isp'], + active_block_height=node['active_block_height'], + bond_providers=json.dumps(node['bond_providers']), bond=int(node['total_bond']), + current_award=int(node['current_award']), slash_points=node['slash_points'], + forced_to_leave=int(node['forced_to_leave']), + requested_to_leave=int(node['requested_to_leave']), + jail=json.dumps(node['jail']), bond_address='', + observe_chains=json.dumps(node['observe_chains']), + preflight_status=json.dumps(node['preflight_status']), status=node['status'], + status_since=node['status_since'], version=node['version']) + commitQuery(query) diff --git a/backend python/thormonitor_collect_data_rpc_bifrost.py b/backend python/thormonitor_collect_data_rpc_bifrost.py new file mode 100644 index 0000000..93792a4 --- /dev/null +++ b/backend python/thormonitor_collect_data_rpc_bifrost.py @@ -0,0 +1,66 @@ +import requests +import json +from common import commitQuery, grabQuery +from multiprocessing import Queue + +import time +from threading import Thread + +def requestThread(data, Queue): + """ + requestThread thread to grab p2p id and health of a given node + + :param data: node to grab info for + :param Queue: queue to push output too + """ + if data['ip_address'] != '': + bifrostURL = "http://" + data['ip_address'] + ":6040/p2pid" + healthUrl = "http://" + data['ip_address'] + ":27147/health?" + bifrost = "" + health = "" + + try: + state = requests.get(bifrostURL, timeout=2) + if state.status_code == 200: + bifrost = (state.text) + state = requests.get(healthUrl, timeout=2) + if state.status_code == 200: + health = (json.loads(state.text)) + + dataReturn = {'node_address': data['node_address'], 'bifrost': bifrost, 'rpc': health, + 'bifrostURL': bifrostURL, 'healthURL': healthUrl} + Queue.put(dataReturn) + except Exception as e: + #catch all exceptions from this thread and return without writing to the queue, results in data not + #being updated for this node. + return + + +def biFrostGrabDataAndSaveToDB(): + """ + biFrostGrabDataAndSaveToDB used to update rpc and bifrost info in thornode_monitor + """ + responseQueue = Queue() + currentDBData = (grabQuery('SELECT * FROM noderunner.thornode_monitor')) + threads = list() + for node in currentDBData: + # print("create and start thread ", str(index)) + x = Thread(target=requestThread, + args=(node, responseQueue)) + threads.append(x) + + for index, thread in enumerate(threads): + thread.start() + if index % 20 == 0: + time.sleep(3) + + for index, thread in enumerate(threads): + thread.join() + + while not responseQueue.empty(): + resp = responseQueue.get() + query = "UPDATE noderunner.thornode_monitor SET " \ + "rpc = '{rpc}', bifrost = '{bifrost}' " \ + "WHERE (node_address = '{address}');".format(rpc=json.dumps(resp['rpc']),bifrost=resp['bifrost'],address=resp['node_address']) + + commitQuery(query) diff --git a/backend python/thormonitor_update_ips.py b/backend python/thormonitor_update_ips.py new file mode 100644 index 0000000..ffdc7a1 --- /dev/null +++ b/backend python/thormonitor_update_ips.py @@ -0,0 +1,46 @@ +import time + +import requests +import json +from common import grabQuery, commitQuery + +def updateIPs(): + """ + updateIPs looks to see if IPs on chain don't match what is in the DB, if they don't match pull location and isp + info and update the db + """ + currentDBData = (grabQuery('SELECT * FROM noderunner.thornode_monitor')) + # build IP table + ipTableOld = {} + for node in currentDBData: + ipTableOld[node['node_address']] = node['ip_address'] + + + response_API = requests.get('https://thornode.ninerealms.com/thorchain/nodes') + newData = json.loads(response_API.text) + ipTableNew = {} + for node in newData: + ipTableNew[node['node_address']] = node['ip_address'] + + #check for any missmatches + mismatch = {} + for key in ipTableNew: + if key in ipTableOld: + if ipTableNew[key] != ipTableOld[key]: + mismatch[key] = ipTableNew[key] + + for key in mismatch: + if mismatch[key] != "": + response_code = 0 + while response_code != 200: + response = requests.get("http://ip-api.com/json/" + mismatch[key]) + response_code = response.status_code + if response_code == 429: + print("rate limited wait 60seconds") + time.sleep(60) + elif response_code == 200: + ip_data = json.loads(response.text) + query = "UPDATE noderunner.thornode_monitor SET ip_address = '{ip}', location = '{city}', " \ + "isp = '{isp}' WHERE node_address = '{node_address}' ".format(ip=mismatch[key],city=ip_data['city'],isp=ip_data['isp'],node_address=key) + + commitQuery(query) diff --git a/backend python/thornode_collect_data_global.py b/backend python/thornode_collect_data_global.py new file mode 100644 index 0000000..8d83950 --- /dev/null +++ b/backend python/thornode_collect_data_global.py @@ -0,0 +1,149 @@ +import time + +import requests +import json +import random +import datetime +from common import getDB, commitQuery, grabQuery + +def getAndSaveBlockTime(height): + """ + getAndSaveBlockTime looks over the last 100 blocks and passes back the average block time + + :param height: current block height + + :return avgBlock: the average block time over the last 100 blocks + """ + url1 = "https://rpc.ninerealms.com/block?height="+str(height) + url2 = "https://rpc.ninerealms.com/block?height="+str(height-100) + + bt1_resp = requests.get(url1, timeout=5) + bt1 = json.loads(bt1_resp.text)["result"]["block"]["header"]["time"] + date_format = datetime.datetime.strptime(bt1.split('.', 1)[0] + 'Z', "%Y-%m-%dT%H:%M:%SZ") + bt1_unix = datetime.datetime.timestamp(date_format) + + bt2_resp = requests.get(url2, timeout=5) + bt2 = json.loads(bt2_resp.text)["result"]["block"]["header"]["time"] + date_format = datetime.datetime.strptime(bt2.split('.', 1)[0] + 'Z', "%Y-%m-%dT%H:%M:%SZ") + bt2_unix = datetime.datetime.timestamp(date_format) + + diff = bt1_unix - bt2_unix + avgBlock = str(diff/100) + query = "UPDATE noderunner.thornode_monitor_global SET secondsPerBlock = '{field}' WHERE primary_key = 1;".format(field=avgBlock) + commitQuery(query) + return avgBlock + +def getCoinGeckoInfoAndSave(): + """ + getCoinGeckoInfoAndSave pulls thor data from coingecko api and save to thornode_monitor_global DB + + :return avgBlock: the average block time over the last 100 blocks + """ + url = 'https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=thorchain&order=market_cap_desc' \ + '&per_page=100&page=1&sparkline=false ' + resp = requests.get(url) + data = json.loads(resp.text) + query = "UPDATE noderunner.thornode_monitor_global SET coingecko = '{field}' WHERE primary_key = 1;".format(field=json.dumps(data)) + commitQuery(query) + return data + +def getAndSaveLastChurn(): + """ + getAndSaveLastChurn update the last churn block in the db + + :return status_since: returns the last churn block + """ + url = 'https://thornode.ninerealms.com/thorchain/vaults/asgard' + resp = requests.get(url) + status_since = json.loads(resp.text)[0]["status_since"] + query = "UPDATE noderunner.thornode_monitor_global SET lastChurn = '{field}' WHERE primary_key = 1;".format(field=int(status_since)) + commitQuery(query) + return status_since + +def checkRetiringVaults(): + """ + checkRetiringVaults checks if any vaults are returing and updates the DB accordingly + + :return areWeRetiring: returns the retiring flag + """ + url = 'https://thornode.ninerealms.com/thorchain/vaults/asgard' + resp = requests.get(url) + data = json.loads(resp.text) + areWeRetiring = len([x for x in data if "RetiringVault" == x['status']]) > 0 + + query = "UPDATE noderunner.thornode_monitor_global SET retiring = '{field}' WHERE primary_key = 1;".format(field=int(areWeRetiring)) + commitQuery(query) + return areWeRetiring + +def cleanUpDB(): + """ + cleanUpDB purges our DB of nodes they are no longer present + + :return: returns true if purged false if nothing to purge + """ + currentDBData = (grabQuery('SELECT * FROM noderunner.thornode_monitor')) + currentAddrList = [x['node_address'] for x in currentDBData] + + response_API = requests.get('https://thornode.ninerealms.com/thorchain/nodes') + data = json.loads(response_API.text) + # sanitise data remove any empty elements + nodes = [x for x in data if '' != x['node_address']] + nineRelms = [x['node_address'] for x in nodes] + + removeList = list(set(currentAddrList).symmetric_difference(set(nineRelms))) + if len(removeList) == 0: + return False + + toRemoveString = "'"+"', '".join(removeList)+"'" + query = "DELETE FROM noderunner.thornode_monitor where node_address IN {feild}".format( + field=toRemoveString) + + commitQuery(query) + return True + +def getConstants(): + """ + getConstants grabs the current vaules of CHURNINTERVAL and BADVALIDATORREDLINE and updates the DB + + :returns CHURNINTERVAL BADVALIDATORREDLINE + """ + url = "https://thornode.ninerealms.com/thorchain/mimir" + response_API = requests.get(url) + data = json.loads(response_API.text) + + query = "UPDATE noderunner.thornode_monitor_global SET churnInterval = '{field}' WHERE primary_key = 1;".format( + field=data['CHURNINTERVAL']) + commitQuery(query) + + query = "UPDATE noderunner.thornode_monitor_global SET BadValidatorRedline = '{field}' WHERE primary_key = 1;".format( + field=data['BADVALIDATORREDLINE']) + commitQuery(query) + + return data['CHURNINTERVAL'],data['BADVALIDATORREDLINE'] + +def collectDataGlobal(): + """ + collectDataGlobal update the thornode_monitor_global DB + """ + #Grab the current block height + height = grabQuery('SELECT maxHeight FROM noderunner.thornode_monitor_global')[0]['maxHeight'] + + constants = getConstants() + + # Calculate average block time over the past 100 blocks + secondsPerBlock = getAndSaveBlockTime(height) + + # Grab the latest coingecko info + getCoinGeckoInfo = getCoinGeckoInfoAndSave() + + # Grab the last churn block + lastChurn = getAndSaveLastChurn() + + # Check for any retired vaults + retiringVault = checkRetiringVaults() + + # Clean up any old nodes from the database + cleaned = cleanUpDB() + + print(str(secondsPerBlock),str(getCoinGeckoInfo),str(lastChurn),str(retiringVault),str(cleaned)) + From 8921563fbc67e038b1d7a01ee2d2da45cc1fc442 Mon Sep 17 00:00:00 2001 From: ThuanLe Date: Thu, 23 Feb 2023 23:52:21 +0700 Subject: [PATCH 02/78] update ui --- build/static/media/heart-blank.8c7b45fc.png | Bin 18130 -> 11551 bytes build/static/media/heart-full.95f2338a.png | Bin 13840 -> 8233 bytes public/index.html | 9 +- src/assets/images/Filter _Buttons.svg | 4 + src/assets/images/atom.png | Bin 2895 -> 10425 bytes src/assets/images/binance.png | Bin 5720 -> 4823 bytes src/assets/images/eth.png | Bin 15230 -> 3997 bytes src/assets/images/overview/24high_trading.svg | 4 + src/assets/images/overview/24low_trading.svg | 4 + src/assets/images/overview/Bond_icon.svg | 8 + src/assets/images/overview/active_icon.svg | 4 + src/assets/images/overview/block_icon.svg | 5 + src/assets/images/overview/churns_icon.svg | 4 + .../images/overview/dots_three_circle.svg | 6 + src/assets/images/overview/filter.svg | 4 + .../images/overview/github_link_icon.svg | 4 + src/assets/images/overview/hex_map_bg.png | Bin 0 -> 173181 bytes src/assets/images/overview/liquify_bg.png | Bin 0 -> 267079 bytes src/assets/images/overview/liquify_logo.svg | 10 + src/assets/images/overview/loading.png | Bin 0 -> 22561 bytes src/assets/images/overview/marcket_Cap.svg | 9 + src/assets/images/overview/mcap_rank.svg | 6 + src/assets/images/overview/power.svg | 4 + src/assets/images/overview/rune_usdt.svg | 11 + src/assets/images/overview/time_icon.svg | 4 + src/assets/images/overview/total_supply.svg | 10 + .../images/overview/twitter_link_icon.svg | 4 + src/assets/images/thornode.svg | 9 + src/assets/styles/globalStyle.js | 21 +- src/aws-exports.js | 3 + src/commonFunctions.js | 14 +- src/components/VisibleColumn/VisibleColumn.js | 100 +++ src/containers/A_monitor/activepage.js | 844 +++++++++++++++++ src/containers/A_monitor/monitorpage.js | 606 +++++++++---- src/containers/A_monitor/otherpage.js | 846 ++++++++++++++++++ src/containers/A_monitor/standbypage.js | 829 +++++++++++++++++ src/containers/A_monitor/styles.css | 498 ++++++++++- src/route.constants.js | 3 + src/router.js | 17 +- 39 files changed, 3704 insertions(+), 200 deletions(-) create mode 100644 src/assets/images/Filter _Buttons.svg create mode 100644 src/assets/images/overview/24high_trading.svg create mode 100644 src/assets/images/overview/24low_trading.svg create mode 100644 src/assets/images/overview/Bond_icon.svg create mode 100644 src/assets/images/overview/active_icon.svg create mode 100644 src/assets/images/overview/block_icon.svg create mode 100644 src/assets/images/overview/churns_icon.svg create mode 100644 src/assets/images/overview/dots_three_circle.svg create mode 100644 src/assets/images/overview/filter.svg create mode 100644 src/assets/images/overview/github_link_icon.svg create mode 100644 src/assets/images/overview/hex_map_bg.png create mode 100644 src/assets/images/overview/liquify_bg.png create mode 100644 src/assets/images/overview/liquify_logo.svg create mode 100644 src/assets/images/overview/loading.png create mode 100644 src/assets/images/overview/marcket_Cap.svg create mode 100644 src/assets/images/overview/mcap_rank.svg create mode 100644 src/assets/images/overview/power.svg create mode 100644 src/assets/images/overview/rune_usdt.svg create mode 100644 src/assets/images/overview/time_icon.svg create mode 100644 src/assets/images/overview/total_supply.svg create mode 100644 src/assets/images/overview/twitter_link_icon.svg create mode 100644 src/assets/images/thornode.svg create mode 100644 src/aws-exports.js create mode 100644 src/components/VisibleColumn/VisibleColumn.js create mode 100644 src/containers/A_monitor/activepage.js create mode 100644 src/containers/A_monitor/otherpage.js create mode 100644 src/containers/A_monitor/standbypage.js diff --git a/build/static/media/heart-blank.8c7b45fc.png b/build/static/media/heart-blank.8c7b45fc.png index ffe73a139ee4a3824ad34dcdf6c22225076bf826..bf669f16f47eb0fdc3240af5fcbc942978be11bf 100644 GIT binary patch literal 11551 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 X1zf*hpfNAs?KGMj+Za7G@JRSSH;diK literal 18130 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 diff --git a/build/static/media/heart-full.95f2338a.png b/build/static/media/heart-full.95f2338a.png index e5ecd049bc06fd0b073cb0257cf33f300b63c13e..5e082d2fa638487745ded0f8265c1c6de1d11f89 100644 GIT binary patch literal 8233 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 literal 13840 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 NP36wb!W*W~{s+a<#<>6h diff --git a/public/index.html b/public/index.html index 9127c14..c7b77c4 100644 --- a/public/index.html +++ b/public/index.html @@ -31,11 +31,10 @@ --> - + + + + + + + diff --git a/src/assets/images/atom.png b/src/assets/images/atom.png index bd53d9dee9dfdfd400c274ef723eac0fdeb4da54..62ef35fa3922c7aaa34c1e2ca2947a930ae13d6c 100644 GIT binary patch literal 10425 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 literal 2895 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 diff --git a/src/assets/images/binance.png b/src/assets/images/binance.png index a0862bfe614cd225e55aa343e4ceaafd9693b86b..b21240ea9369b9e74b81812bd008e27ea7f46c45 100644 GIT binary patch literal 4823 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 literal 5720 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 BpkM$1 diff --git a/src/assets/images/eth.png b/src/assets/images/eth.png index 45a7c8b880f70b7cc98daf893eb4e5686ae7c00d..81bc9e9dd3433ae1b4edf5bc9ef984efe6a619cf 100644 GIT binary patch literal 3997 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
h>R6b1vd62`lr<<>e|>lL&*@k2+^ATxUhiJ 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 + + + diff --git a/src/assets/images/overview/24low_trading.svg b/src/assets/images/overview/24low_trading.svg new file mode 100644 index 0000000..edcd752 --- /dev/null +++ b/src/assets/images/overview/24low_trading.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/overview/Bond_icon.svg b/src/assets/images/overview/Bond_icon.svg new file mode 100644 index 0000000..799494b --- /dev/null +++ b/src/assets/images/overview/Bond_icon.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/images/overview/active_icon.svg b/src/assets/images/overview/active_icon.svg new file mode 100644 index 0000000..de4d0ce --- /dev/null +++ b/src/assets/images/overview/active_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/overview/block_icon.svg b/src/assets/images/overview/block_icon.svg new file mode 100644 index 0000000..8a93fbf --- /dev/null +++ b/src/assets/images/overview/block_icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/images/overview/churns_icon.svg b/src/assets/images/overview/churns_icon.svg new file mode 100644 index 0000000..1dc1593 --- /dev/null +++ b/src/assets/images/overview/churns_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/overview/dots_three_circle.svg b/src/assets/images/overview/dots_three_circle.svg new file mode 100644 index 0000000..4a095bd --- /dev/null +++ b/src/assets/images/overview/dots_three_circle.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/images/overview/filter.svg b/src/assets/images/overview/filter.svg new file mode 100644 index 0000000..367fdf5 --- /dev/null +++ b/src/assets/images/overview/filter.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/overview/github_link_icon.svg b/src/assets/images/overview/github_link_icon.svg new file mode 100644 index 0000000..95da7c3 --- /dev/null +++ b/src/assets/images/overview/github_link_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/overview/hex_map_bg.png b/src/assets/images/overview/hex_map_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..31143008d0193773c228239db6d52e05adeb0dfc GIT binary patch literal 173181 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/overview/liquify_bg.png b/src/assets/images/overview/liquify_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1a924d8190de226ff8b6dff375805711768071 GIT binary patch literal 267079 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�r-1d9l#kV{`5r+G`dUetUQaK0{rr`s@oik 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� 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%0DWaQ$IB#90gc8)m_ql?tQ@Sde!8D)b~&&) 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.Sc? ztSf*Pk{A96{KlP^Jal_SfobyJ19$h6f5c$cb(G?F8}Y>j)T6nI$P+$w9ZrvpuGk`+ zjpZ^N*j0V9AOz>{V`7VOo~=9#pA1`+^xX+J=yV(eRnNn6AD(b`tJm~<+Brxr`ubUA zS$EGVp4Ixh!=U8z3T%LxlPm_}SH|o2TNS8(fFy$L@yLU?Nd_OcT`6U{a%vxQibHcs zzY}1a>{Y6n=iTRB4_|^ zBN*k?#rqlrqsB*^bbjYX!!{(ek%|>s0YQMD`-!#kth=U`Y=)7AqOj3w-E%n*M9Srl zj+v4uot+S%G7H;dAs(qg0}~_C2LS9`7uepW5KF2(7Eh>4dV zDIX<2SiskIQjsPH0B6lhJDNDQ3y=x1B>DOKIKHF!|C~XU*#9lo@DU`?zC_gfSksNm zqZS9&tRZdUhEi1cQpJ;)gl9kUqOJ6xony2XL%-ert6nCP_{4LyAB-z|SRp%f7#xI9 z^%|-uKP5IoXije3^8+=4cSzC)+Vx_#8hPP%A1WMzX-ntPs%t)D3_D0nje8nzV|Jtb z$9T{ZI#BrL~>KUkXRiZnlNsA^@yb^>}42Y zZ|Y?fm0}9W0G9^Jgb;0rIB>%s5+{VFZrE#?$2=)!5HAti?%dXJHAt~Y#(uh z7Ecs^TPD-H-GEynU@qx=o>_FGIE*xThzP;Y?E^qn=l0`Kyx?c2jNGgXO0jbR)L`q?nq z;+~X`!$?77=jI`71+-XZ=sW(kzORADnC@26@>hU5scXJA4YwJ?iI>SX?MhKF`_r!1 zP&O`Nw3+D;_nUr4mXdJ|5rQu z{5n|;y%F@Z#qzl+KPD)Y$))!yoEl=h44cun_6wVtlHsoHOb+syfjOG=G_h& zi3dcs93i>negKA2;G8S3Y3=iAOmq}b=Yl9pCFIY2UJ z(LsL1VrWO4azi(z_j&S;3-T9JsqYHJcW2zeXw)sqZ{m1?=WTuBrQB-p0TJV(9+kFm z|0{ljQ$-?~krWPtB;*qij>yr{g3x=f_LAKREtt4xL4LTQi`9=naxZ^R%tAL?aj7Ne4_OB z-ECM{+{4&yZ__*m#8kDp?9&9!}Nx%7dqHM$l!EU9Yqf-ZwRr2K-$2-;rFqY z*M?1B5B?76>%9MGzz?^&LUGhu1(&`=7_aVv>6|zQGZh|JT@zk?k0QkVFsJabFe;LIPTGsY?97h~5J#n`98Qg5o9LZZkZdp3jGC z=UuLxj2==Cz*}b@ffvFL4$-?&!DEIw3>}ZF_??*i1RS%X1k6?dfr80^_Xk9u0o~3z zmF$h~5cKE^$)5~N3@z2>Z<1Pe5=5D{Nt<3`;OjGN+54IJ9R4EUQC!U9XQQCU z+V{1x^tr4D$+|eW-ye(^@qOmi)U2?i5m;ZXSzy^4UDw%&N zG3KvjryJuVc&X4`ztpw3@X{A-lU22qD{M-q4c-VPPJqFAgkkx#g~PVtxK$ed*J&n1s6uPAJk2BM3md2hvB^Qr&Ck z({Ju!$aA=fS{yT$%vCN!rS!=OcuiH#bK5763=J%+QMt?3{)g{WH1dEqMkPRI*R6T} zp&u7O%l3XeCdwYVvL~Xta43oeWj*mQqp>pLu-!+@0zx3Hh8e>Yl$Ayy&{bxNJ~Je2bwvfHE{Y zt4`_^s%meUrPWAHJMHUj`48rc7A*P)TlmTgA!uo4CCOsGvCXKAL8W^?58w;+{M2J8 z5$)X)y;yN_^V}06j4LCL9+~F!Ud*-oYQmVOzhe+fYj1@jouq`$W8tMnDWe_Pfxt!s zstOG`K5{mQAGLPs#(8F6+bSVKk{K_GorOxJVGGYL*p0pOaZ5u>Fu(>jlh`p#;Nmy_ zBYW@4ebDmwF(aQd%Zm}Y89hm2K=M@Ex=~NTDFGj91q+T}R35EZJk&mPu$Ozk{Z zFcPcBQQ_gA>GMHhbtVJ~&p$8j0#kF*z!$YDB1Ky&wPi^)WS+39v=;I5tIQG+fP zt5nE|f^-7(aPDF=qnsoj_VB^Y1!e74eCC(ozs(sA+p|%$#{G7SyYC z(^4ve!nQVEk&_+?h~iJ(Kq&FJ*zZKVed1zUbLM$JJonWa(Bv$;&PU!}UBv4>G|3a8 ziiyRT8t!zk7}}OkX`@B64|9+p4*3w8+&%Fou<;Q%$>-M6tmN?jdlSR?|GgOxr$EIj zwcUU7YOPR!3`AC(nz-ltRDhjpZr#cr$>$7oCTI5b*N%?+sdb@T>L%)Jl3|>+1iuh_ zJKsH5CRJjoaKZb9SNW#*Guu`ClOIT&t+s1JkcU2=g|j>xQvtuAlZA1oAu2FiJj2F77|@Urv~7*AK|>jPvI9+<+C2)cYoj9va@>n$PLrc|cu{_p-V zO-$)kG4wt@KqC67UV+U%1}sRJZ{+hD#rWg04?kWpQ`%%jFWahR#0^}ajXqW7A|^3OULkKL>i360@1_6F%&SEAw(mIl9R%@l55$*^ zUXv`Ffxv?IDq9QIARadk(1)c3~IOH4OEEzCyL8}&i~YqAH-UC##qhI`0Yg&>z6 zVtFVN8lV6=>Wqo?Bad`?+CMC|aGwr(MTQAECJV{#VfqlG=SzbHQ%^lp;uMs)IH3zS zHm5gP1)4<72e9ZvubB-XXkN{B58;%eP^i1Bo!`y(mLaI`YwlHR_ypr{E(p@_ZFqAn z#f9lHo}IeW7`)fNG^-3(VwIsjVbSafF~8iy`Qp35^}VA7s=vYM>|dMKw#g_ez+ZnM zN?F)+md%VPB;Mh&HSsnq&NpIbL(sl=?cweeVs{VrbK-RLaI9{!5@Ocly_JD%R0BON&suJ9Uc--79bx`#xFBSO+tPG?~z{p(vw7}qlpSE5| z)Nv=OEeOTa^nh`$1cV7piId~JDro}By?mRjj894N@z)O^I3Q^94;J?2HjuT>N@UoH z0&HexdTyF7OPvTt-*LD{7xGufIvkF?IdM{&4{aGOH%mn2mVcMq2*V=6_GYM8e-Hm1 zgcN`CX21RVS>Whu$FskQJ6*`X*wM`y6n{F=_Z>eS(L-(4Ehl~U+kSzGu?^>(pST(u zk7$~zG$WRc5=w7*yJgpZeaGZOYkaPmm#@@sK|i%|wb8`@z(cIXUzxg4`e=T%7?{L< zKS})bD>`BCnZV*174f^$LO9MJ7tLU&Zp~0Q0GNVd>KcVI`CKjiBwVDwA`!ny5N_j$ z55+SeQw}DVCd~vC@7yVmta`OUZe7-1ZEDNP+mLv1apC#ffdv6cEDLy7^AO-oV<%PX z$0j0mB*oTry}@g*zasN$ zdw#Mv1%ei1Q(P?wIRH0z{i#`D;Qgmd=nH;frarP`$ZPcxVh&37e!`r=_(XzyZWuXe z*7`?13L*D1A6ue??`o*{R78C>%cc|c0|Y+C(16{GjwxvzdI6DVoOfId)r>l*+HUoy ztHT2(SH7roF))|a5*Y(#JRo>6#IN9Bj8(gRwmBYGCV8&kFyq*I@tc6<^P#rxIX5y zNeS}eY4}KxXE+MI>4y`lSBT5GSM1QG5t5k2v=Ej%FK zCVbJ=J9p8iE#afz)f@aJNpTU}!e!7D0R zmy62n$Hs;P3zV3-BO#15y!rF?yN=&ucMPwABy+;Rm`=t2MDWkgMi(X~y+WXe?Bg;- z&0upX%8I6>Q{?5rTa{oX7x0o9V35ka>&lnEMGGkpJH-3I27_ zYkwhx*+zLSG*YJ>0sZ2kXMduIXrJWYcbPml&z&wo%5MqxRILH%W4I0otcpSv=FZ|t z@)6-V?)@T>@u+9i5lUvcD3ak^D(wXE@ZsiRPG)(}zdOa#2okj;eUQq!cyGNQU`*Sz zC*FDAYwCVJR-~1hNv)cq)Tp+h(MZ%txIrSuBNov}c=dTZeHd0B{5i%rs9QhiaJO%& zH#yPS%EEqWQ0!ZmBWr{eWN5D0X$3O@GaYj|HVL!U!3*2kJI=prqi*1QX$if;Ze_rJ+aDIz*DZsVVe7sU6-#D1 z=9JTJ;Wp7rqe2+3M*}?GhE|73Ukj4Ljsms{UWlJk2MQM1qz%6}Qvywo{xLB}H({n# zjjV|_8cQgC14F&oj2g+f0o!6x@)Azw75VKbLHr(}y<2&}$c%=DNZ^4U`x1Pat>?`+ z>FRAEl7a2bE)eo(*Gz7T^pA0K?6*fhU#8p+MGhk3H-5Wxqo%T)lt7zp+hW5B>A`Bb zCq!Y$ppDD?C#-F5-aI?a6fzZDx^5;~e{Q#{RRcS~!fi{_ZG_drR;w!Iu;fzl_hvYs zX#J17MzdM^&lijs5Uc)4=9IdHVHWt6ndJ%R^n!A;p*+N~Ro_0bK?C{nSyZrq&(g={ z=u&`1rZv=ln{5d^S_Yb09-u9XJO^Q;p^xycK3c83s$jx=I$xm>#r&8lJTeu zg$z}7ALsAu5Y5#^1^#ru&H}XgE!@;Ws_C45<;BRy^BB6Qf|s)$G>Ch=%sg4E^u9>~!bn9a3GJSG%qwnv>JXOw5hXB@GX2 zy2a?+6)!(a3cBWA9Gl#mB^T7|jXpTs3-`~NWF_dx^nD*5m)zimCAJUwvGDjtas@|W zj)yOeg>$f!k3sNc&5Ay!j zK$@9VZKHeS^UXbytnO1|#r&_G3+*7IL|b2PM5%1f}T+V|w4xB-!@;jUu|GRj&e-D^ezadTJe7i$@v`NsN zwa;D{(HecMA9)bJ_uFT`^UeLiUK$OJCn%PU9tw4XU53m!W+`&e$vbY}i=0!)aQ`GJ z=Pv#*)YM)6&=or0W9%dna^le&z%PN&ckb?;zxB$_b0mC9k-J{xrrIH8Vy=0?zGlXC z_|7R;y`b6Q^!#+q)Le)r1lhKGbJfu;+uLOTV!WNCHsn&^GOaOu`eSJ(cpD)h?qV0z ztYRDHp{mO^?@bo1)yaGOjU-t;hF?m|`+D#pfrq%Kiif3D!G|`-)xhoq+v*iJ9bYl& zhBL89f}y+H0ieaUIq@FdMhwqD1m65&U7sxWjShms4c^4)$AMD z_Th4|yaVW$fm0nw)yL+ZxbJ4y^r;qkI!cWZfPGC%8QONUJ80wqS@GioUh$OuL&FLQ zI0QBzgLxaRXs3J35@W*GmSFdaRt z;68dmRGLkNO7Z$kHpATdHq~ESMl5oV?o?VE{Ir4^PCBx-!aGa0XN6qb8ZYk;rD;p09)Y5h1x_1n^k^7|Md$@PVjgyA>Wk(M=55s(qLiAi-m=QDgb;l zoTlEPe9VY7Yff2w$fN%9I`*&&9)neOoWqw89#7R4h}`p5a7Esk^uPZ)DDa2r*_(0B zPxWLH3O9^l2D3l$zz=0JATscPnuW`?Hay1b*DE;MzBrq`zNN4Kn2HsEUa{%6e)pUM zK^_3h0kZu#G&E<=zb9vYDe3N{CpxS+5;;byTxy{8wkVhR?1Lkd{2*Q7_D{D0$0v#? zsJrcCz^&??Ig&VKVQY%m6*>q#z;@qX`K>JRekn0$)jnEN|rc%cTStRUnPY!t>NfKIS@hl#N)F1W#wPl zga>^$qm?vH4W1K_P7?k3XFWm!rIV&Urbwo&05r3|PR|IiR}@Scl+U$GLa= z#h+&__qbQL3;RsYHz^mZb(`Vp1bO2s>)Fr$n3;n(zWl;G_YJdh&DnaZ7J~fleBec^ zodDGYafF*EHsp8&yrSCl#a||;XyxJC2Xvi;5eOWxT@0p!rXAmhnrUO}Mtz-`YoJGQ zpVK!v`9zua($)7#qGnx(71MayP)oRZ_467tvuDqK}|!->HJyi zCg!}#p*su++Eb+*?Pl`I#{^*ECxV=Zp5HP3PqbTDg^J#t2%c5pG2V8$!cuRv));qu z^0_D$sQA`q5*2g0_s@140`8FuogK`74_t(r1NbI1%Hp&}|B;{U211gp&-C@k_e+O} z|G3V`NzbBU#9YGVe{vtc1GMvW13F;$xJ0Q*oa9M%)^OTw>A!yp7HK@R| zpP)CJ9v>dr36uRj{&%vn|Nbot^vW?=<;Evjoj{(;T3B~HBPH?R@`>CJ!L*Ob5iV5Z zDHQ7UZae7QNeBe*UL1sB&DOrrgqeUzOKW}hcbxVk>!dIaqb050wuh~|3PzWd-1=I0 z!5_7UT13}*e=_Bg@7Sa&&s1pHlxinNkHfDUJ%%SVw+99On&Q{&rG=fp7X-fhDJzq4 zMm&GekB{iGG?+M@OFi=OH?M;gp78lr*hw25EXFd;QZW2vda){YB`)Xpy^-oSvZ zcn5jmz{2cuHr~vRl=!|5>d@b{m7v{Y_1=3y*EwrNT&V4U`RUEt=*gx+^@l&_p4wWm z1JB}_*hvGOeD<0A><Wx5 zAR6uC{|=ebfi*B_>P;c-dT>Yy68~^+OM_3u`Rh-7MPRZ zOy1BzGQEUh$cuCFID2uvEr`#m$w=0f0Eg9jZ?j24%`7#MObHRA+5T}OVYO!p9P`bM z&GgOq+E6FnDI z#sc&*oMV!Iz68QW%D#_gkq1~L&uX!j&kg^N6CE*Sq#eJ+JLY~{&ViD1PXP}R zKl{VaRTI{~^qS-X^=ArR(@YkPJD%U);bPxwJ=TKpr8PVWX#eR9_f*NjH{{?T7c zMC4Rvsuv&gs1_63J_{f|7FB<*SB&#wkLu1XvJIubPe{}L)R z#2OCcwVIw38i|Q{re<5O)ONcP8|O{r8;MZ7Q0F!tmnF)O_%;ipZ&BmQRB+;P3x>W0 zZ)2?mZVfZDa7u!2%d&96I8n^`b2^!l>=pLq)!Xp6?>7<_6yzLcc^s(G@3c;w-A0&B z8X-vPIbXFW2GIvqBi6sP>lBkLgSjljhoYQ*-FvkT@%aht1~gJx2Q!BJjfo z094$&K*Mw_MFcB3cC^UTS-K=-G`}Zpf0_lMhuPNh40Xea!fa9-_5;G=B_dX{QtN48 z6PNX2Hh5id`UE`3petd1HPGe|1SuABf)&^9uLo6~HjU@oETeUt!vT*Pp03>L;EHqm zk&+?Pk{)Y4)!=?k;_7j-_R1uW()Q_^f8O&8N-^+%LFa3{^ndO!H&nLw4ooCR*%u7g zB74@|(00zq$zTdm=VndKqgCzE{wS#TAt@fkfH2>CwL8zV`<${#D`#yjmUhOMnQ`@% zg@rz-7+=aNu+EG%U;$|J4|qD3J<(8 z78yg2+3m&w&oNHgyNUm|J!rAG{~X6tTa{k5%@4oXy1FFpxw?8!QWW8D2QN5Z5H(wP zQ+k`o=U=wMnhWTn`{B{|CO*gVQ4H$%!JUji1DJPBq=wI)pp36NW% zEyDjhym!N0jH`|5&%PKv3KhL$?drwtAxMfTj-$0jUM0o548n9M@fMS~bk zNPNryo$cO-xwpUXu0^*9U98#buN9t!d{|n!LAQ9!Md()hS8UC6yuq&lzNV+IV+YTLL*6zeg?@B)P2yB|$Z1vRxvk8LT5eY5v zj*USo@3QXRuxE&!r^B?(4Y`jQ=lW6JitERGer~}E4M%D}C%h{uG7bp}_d<~$bqw@@ z8A?vUEpxqVeS6kr5lipg+4td_;$7#FRh_>3u7O$C|J5OAUx)t#cF=M!$qOQT-GaV{ z#RVrwY5nlRnKCyWv^WHWVIEkpKIMdH>7`Hh{gOY;U&C}bmqfU&NAEl}9W4?rYHyO& z&W8bH4`Jx?GoGN$Fl4A11r$@ed2PuofB5sRZBqXLrtVLpcuJ8p)*i04(6srv(@Zjc zc%motq6O8vc28uNo+bcdbTA@}47CAv1}&EQ|K{5&cJ@BZOv79&^`gwi#&ZzfA3|-# z>%hA&LO!1ULCA|z7qHVHl}$53Skx7?lmg}>o#!R!O*lEl9j{y5Z!!asg)baOKV}?P z`i=*7W%AQRT3uM{YObBP_H?77rrjtasnXv9vrodSGY*QUnRNHQ@-~;mstXAwxpPix zJL5eXCe-&$0=?R4s~=y@bZ)`_AIdcUrRLUmioGw0%lt#*f*n#VFT!k4AqaJV@e;g3 zQ;{JgptoeQnoxug_-!(SVnmQWu{kegx~wnI`3i`VmufEQrU-h2`lPIz%EWi{LgMCa zCqG?NLHnhqjPvby*K-{-nhXow>7f(Kqc~s!qUU_i{66TKJPUPy2#>Ka{{ulv%-Jf4 za;zGs)Cud%iOU0Uc#wch>9c6o4BF&^Kf+$LL$t>JeLA?gjU@d4Cl3CwoC22J`9h;B+xn*Rit=q zo`**zQn2rNF;(j2*3tV}4Y!4R+_tvUh{=!kCr)1%n?fD@J zxxCD?p}&=!oi7-k3#5Qb>+WcgvP)(~TM4J#%11N5em_D%Nr&j3qy%h1GvvA8Ie@l|Co$KL?HEvT#DWtDFRzUu8Q%NUWm1H&WFdF@I}cw8by~w`LM;nM@;t zyq+F1z1iAg&3X&MzA1bH7r)DaB21aIVDEey@<;~tu=ph&ewX>)2!EoibyuJ$!{anZ zs#0=<*+!?f7f>jj$-oV?CGbn=-QC@!H|83@J6~8I<2dTDmcK3m0No!BCHIJjkK%&+ z6&hI9fb|{3dtLOp*_OC_x^Lfg3a}@iRPg_Havp0q*R-f%>Kb45O?_-AnD-|%j*ea? zfaYJsW&D3gVZ~*<@3_Bk=fgD!;C@Zn<~E*_K}-OlB7iv1!_*U5!LfAEk$dGt+1ft< zY!xlSY}%Px#K3oA*c(Mwho^TC9xrzb*wW_YKCe@wP}BRYM$BiNt~lo#ciPaXgQ^+( zUq0oqd>DjKNQGPmA1m(8WHJwbFYYj_rp(Wr`jdoTt?!bV=D3+xk3-bfM27+0&!@#( zc^a``$XZg_arn^v9jg=MU+RMXU*#-<{?X!Gw)ZkfG4Rekm{SXuTxnZdm$=@fsvH)N zU^+^V-~g|X2oc#wY311k^QgGej6a>z4? zf^PNz9PP?67hH99)#mxuTK~dYTiL0(5p(NLSE|Gwpq?A;P&@l$dee#GEFiA(qj-S=nd zMzd{~WQvhqb2!V`VoYxK4aEcd4db@Q2UYTK>crX(g86QBca@vGVsX*v?sZp{`$VS( zSKY(2gm*L+8yM7Yr+I z@PM4n_IeSUUm;)gl(sItUUO}<~(0!51^0TKfLPhoHqgfP&JXma6@F}?(6l^ ziY`60UH;=0xl?HmavuX(KMN1Ms5{ry^4T5qOXg3}H{*h8|E)Hjk zhZifWqc}U%CQJ$j<|6;ncck1d3VGPVmd;;&K7F0}vb46@_!VzqBE8<%HA5hY5$5@R zweQkfr<0Txj-;s*bI{y2KP3-{OkWw!c$gqRa645RwUaRemMq77UC0`vfHECaNGLVn z=iQkR{+)`k=7)Pad{3=~-6wNS)n=exclSj3c+A|QiDw{#WUj%fy!ahy}4tQvYrk1@6etTD5;7_V!-L7!R_cU$7R&b_F5OXOj zou8Kz4e^-eR>OhM=wib+e55y!Et)B=tDH=VYaYD5|NOC_F@{7j48K z9rK?r8~z8T^LoV4)!0l;zDYs-BxV|3P2F=i#nS_0IhkL>(E};jwIx(g}BWF z3YB3)SppHb4llQv5MwqRPJTOGz0McxoM0Mqg5W3aGbO^kMt>-A>2I}Svw2(^NuJ4` zl+ej0Au)e=EtzG2E!B!N`AB8(1?dmnM-+Qgz7i+>g|E;&$^IFSBTM}dphve!$ddc_XPjUTsNW7&T=1RFYTd;(qBMjS8eXNw z$jtc{Awb(B|ChF;N`**RqfIaD)7Q3Y#wEpH>a!mG8uFjd+ohvduXdYi~#A+QqJgTRzqm4y-FhJ0mez+0pM?ut1?=)_A zZWf(#Os+P&oMs8v+-O4iJmEgq?muf-L0tS?*sYhXY_k|$qhX!)NE;l8WF=jAi!a)G z?|b?qxs`-S>?mON#-PGu&Q`5>I8TbbP5Si@!RB^5-%@??_L?iUmdUwmi76rp?YL;| zW3-_|?WQ%8Oi1RFj=7wgR$%NZGG`<45 zCb4>^*IW2yvE}M^`!zarG{AZnzo`Fp{X8FwOk90RV`x8>??(AOB|om_b7_xDnsrzE zT=dcG@q!Npp&$VxMy1o(Y1HqR4*jC+fIUnv@;H!h*^XHWH3~#q+1s%s3UL9f ziUJTGq$r+GDTH;ez43x`7;(AbwF63B%58)^Q(S=*(Mu5~eE|GheM1Oolse<5ncs7F zIOcI_8_NTpUAh0b>1C)M^QdnVjP8ZT%PAyo1C{rlUFk&Jl9@(cuA1~p?~p*Nfn~Vk zuZ{WOdwfmN^;|Efql0+!3-;Is*`<}D0GaDpc7D?2{?nX#YOKJ%pTivQMx_0O`trjfWP{VFeZ9BYX?co?xe?=Zq; zN_pG}IB$b+6pKSr)%%yqt5022J`D9aC@MR&3Emz>9zivhK(@^j64szU zanD6WnRL!VF7+-%a!QPC3x_&sW5QZK zPyLAglRvEZq6`=+n%Yd?vUgQQV`xE*+3jVl%pMcL^~9p)-ek@mB1SfeZ%Om*e|89B zcZn*CAaSyzmjXQ~Yuofx5(YLMOXBP{z^fNo=ho7M2mKdRFFNgE8E5uB0hV^OI_?Yq z3b(^je|vv&-b@?w^bJQZ@&dPrdLh1#;Rv=#yJn9fWHp*wpP0~I^JYZ2?k+R9yyd+c z*+@=zOCMtNFg~x=6#EkSI6W8mr)N2CHf|`7ClhzgKK}kfTQ#%T8xjzK1)yrez7dsg z{eZT~WOxfjdSz1?8@lQndsahjCjd)9LKq=7h)!GIV) z!`$E6Oj^Wf)qI*`LFI&ov~8Jvi&^Ct9e2_xQAdz%Nj*mn7~KKrSjve4>>mJ+u^GKu z9qdvFy$%p6iR>Z# zdsxyi~v35xE~u8f@_hJHC?s z>duiqOyre`CAwYS*yTf2x8)a6@wddTEl^*Eu$6D%rmnsn);T6p`$v%ssDQVJ?yhgt zRtTP@4q__ZR~2PpO%uk|LBYAF@i*%s?vx?445E>TNmZ*Kx_S%T9nf)H(2UJ?i$kka zI=|Jw5gqei>$?zVL;rP_hm(%k6O{K0T+hVly6YESiN$Zu9$e&>5x6aeIhXnMC

3 zAPrq_E@}VQ2+FcW*HA6!2(n0A&iPSEde3rtGo15l;)QTwM+G*ofC-HL2{t2ro?m-H zx%^P6<@K7LXP9aX)+XRwQ^(4@IS(PO(7TD09nc;$@>{+ZP1pt48`judjZ7@n6Kqy) zOUD#C8VgyEa=guEGV|2m!z~ktG-^(6TfuKh+elc+xlA*(c0UzOpxiVZh6lZJb<@u% z2m^mh^S+{Mgd4zG)u`WtCJ;0Tcpxt6^m5K}4_a4~{lVf7_H+Z7j!SuB!MR@eb|BRR zftXi{du%!YB3W+p&50u_OCjyJchS}ovmT0Kphjp)r_R3ZPL7@}^=O*5-y|OA7T4-4 zk z_Ly?L>u}lvkugtzIehNlP`Mr_!sUIrMogTD^{=xq#F;r&^OG$e4FkTf6A8F{FR$Pf z0U)EiKk>f~+*)W7*w)4^>+>%1-mJ(2F)~wT0pwSsKWy>lGL5S*gB$!z{B`Z_&b3@< ziSlW`oMCY5^$vSqhOl|AX^?*S{2rp|+1mjA6Arr*E)6)**L#Mp2WKaIFH7t`(xy~LK+PKf}Q7#nqjqsP$1Bqr&G(}})Gn#;~Ye-tg<{NgmF47swC(@f)udAP@pH`tfQX*oV{*>|Ll_{{zo*8L^c ze@cPl&&Lh*8mR2_?Y*bRII)jA_aMfbv^iutmXg~!Jq3jp6>K>=&3)|AU5p>Z6)867 zOE#Wy1X(2(S?>;Bt GXl6K0BND8c_uz;kj({8E@9$cBUvaUe7<|E-_d*e6;gX(N zyh>r7rD%g}_!(5$372-c>_zVJsGT7;V2&u5^SbtSzS8$!_WkF9hYmS>R-;bpE2O2=R8mszTnu@ zxU5QJFg(cZe2cs$Ff^qo-=mHJi{WZ)K{0noeVuu5I+dZN5=UoAaCO=wNHunSYgtmE z-2u@78fT7FLFG@u>Yi*An0@q1`pgfcpl{)-^)cntQ=fvlC;CLBR^R9gPcwYb6cL6d z%K~NMYg(_Hb$2r6-GqQ}4rC$~plBx*(`@a6D5Ea{isN+?0H{yW1;$*JIl;t889WNc zR!P`+#<<(wIo8f`Jctz@$LosH|-~Ztqw0x;VMv9&I)v}7vj*h6+q#TdPtQyl6$^`oud`&v zws|!QT4wT&VsVBl8R?Y_RdtYnYPvQ2t zDDW8VMC6xIdHKCkjS464JJ?(g(SSU$NnyAls zrBu02u0J090zzm4ri1M(JNMCmbF2c@ zGi~0JQx)Y{nQ>-hDTk)zAYT%VFNP_I`q?PL{Uj{{{m{;keS2~^An2p=rn!8g2U%}icM`@x0jG|#&J*mHpVw4ooC=l z;mdVUiC07yt4$e-s_lGnzokjqNm$s^65i=J#_Io(#4TfF{UOUC6nSu5Bp_$@kjHBTf?| zTyYalfx(Jye(b*8K76gJ_uH>taA9>oWFkNg#lbE(7$~ozis!^#k0PM<5IMoNq`w_U zNP#!^m=b}zc~0@PPd|w7+D5W!z*o3MCA)h;bq6_CwZra}*ksa885z0n92pN&|C~KoED2NuedUvq+2m(mzcqS@2Hwb*!y_jXuZX>Ms)N`z1}hOM@?=md^=ARNU3DR^5visD^N zixN*TO(SD{x$K%Iw4V`!I%+9Zml3>LETjv;_&%2KmK1RsRX<}YA8a{zD2#K8iU%u= z3kjMdnw}tPv+Vq<>>F-gy=-U1PAnr12|3M45COWUHUT9zwAS7i0vXD2e3Z`D{$Ik? zPbtieErYp?TO>P|PM#=A`^?X24IHQ2M$=^7EXW%9^t^s~rI|t*^MH>a;d>T^%ub|P z>w&cjE4TAy#ov+&FC#+WarXiN2QS-R1gPEe{tum6Qx-~(tk^3b61aw1g|twsDw5-P z6@dRZ0(7PEfGk`l$W|n@7fWRK5io*BMK-4q=;>C@?Q>==R=ceAIM`>qB^D}|%tr&; zZ_{D%?J3mhmyir4vW`WA{!&VDb#&`NkNZ(LGl znW<^+P_KO59TitU0#`R8Nr1?@x#TXES8%%gR)xiBw=6`HmrOd_DPhb+Tw(U#wiy@> zgug6j=+>}o)Evigr9HiM`Zcv|$c06S=R5~8_Gf9>xm zF(LRR)AS$4w%b^Q6*a_@k1r4C`!8f~M&ZwwublTC5Fc}eT^CB@IDB93Y;I}yI0SO48X*gu?UI_$WWl9H*X|1w~aSyUgbl1*%ZW&jd*=zXJp#H z$OhDB@=l80ksDqKH`=0Ya*0W9_#_r`a*LCTv{!#*^2bvz3TZ^#0&DZOxNms3z#YwC z@^(zE@@nOjVA3s`u!mndq={u@p}et7ctXbE!)I>XzRB2)5-%kCVY!pCW=k9{-NNbjSE z78T(s7h~05;q{c3TH9NTh5Ab{>dr+%g43?;jX^(3IX8j#xM|lkpT+RB)2dSi$%}GUXY*8zbGB?SGb0`+D~9}>K1s;&RYuDW ztPPqptjEutn$0}es~1e*C&hA#KgyJ0yeg>O$g z6fK_^K>&KA>71zRnJ%lfkpHV@CJiVbIBe zjDWC)Tz6v+kBu|`6)ouodbg?R=725=#F6(>`RK9Cy-Yh z$F4RV)uK;v#v{q3S5ArehDqld>$T^W-e$C?I`P8V$>C6%z~nU{*AEgg$~2kc+L3^u z!xBDPS|U?x-Y!^&n5%%pDa3Sr6NPa2`UWV-@KApBp51!Zwpdfykvo-es-VDE`>sOc zzU)jz$SYhgrAe{ujEb-SV5=)ovU5H&_xd59N`X?)_+oR+FJVxyI?56W#ZX z1zf%>h%KRujl<0pYX=?3to!vTHAXzu+u z*L_=_% z(~HuZY+61j_FhdUr#l0TCwR68@tDTba=|7S{V+mLvN+#hE=-$p&C|9D8MmGGB5!07 zy%6uoicK-!@K-qen5DcP9_w@m7OLmzz6@$Fp%3PUQ5-$RuWb4!j0AiwF*Z5XUK3}i zQ{Syw5ei-Be+0eN2z*EE(-uijqvH;_?;FSTEY>`G(Ye&nN%5 zt}H4z7`(2mi|Yk3OYRC5a8jwTk_MovW0o zx%f|{x{P}O38fT1+Her0u-JO{bi;;sz^7T;KOiE(JqIpco|=ZqzuwrxyoZBHXX^>luZ83Tl> zyE~E)EtaT<2m7;pCsp6I7$G@$nvGl%D{VcBNL$x~oWtIC$4oelt*u_WaXB5SM z(PS@u2MKWL<+yx#hx>O(BG$Z5>_WSOSw5OsTBUzf_Z#FcE`vvpL zjyL@ahSHk%047KP(ap<~uX?dpkb7=sC+pif(qsJnH% z#y*At$jC$=Rb%+Q8^!abtg&&Bx^-&}hCVI*-BV(au%+mMu zFICaf)|hdl_m6Q-E1;!WsfORdB4c0hzLB;q=Qh(>puZ7oXj~Uej8?8K4UfMcD-G5G z=+-zvm(?0YuBnS;6DxS_mL@^lB82?gr@bQ33p67BZvBbOQl8xe#43ylv4eDvl^@yq zx)}!^tTIytGip%}vtC;v16?)59hD-DC^MvnG8~RTzijJ@%ei5frWuOIE&N}~c=C~6 zfAVbI$;n(a8eg!1(N_-c%pN00?k3HQlO7Q+X|1!c;t8C)VbdMn&u+}45$hGyFLL7K z&02QeVWDM#u&)oA&d3Q>%~`6asi#hdRTA^qLoSrpbYj>3EToooy!79GIf3f3|7E5S zK@RA3^^cspx#3sijuxr&nx}aL+gh>I}*a3 zwwPTA!->{!<97mnVcs2MHGN7OW~TAQS5w2;^$wRJixM#Ryr?_)&nW#3{{=S8b^YOb zsE?KQY-|5?fT~p%mHOrqE1nb()c1vEi2%;GgxZA5W{adk{{jH1N`c#u5Zf45Pcn9- zlyieIA}u_m;;XC`KYqpK$@sMHHu-g52t_FPyH!b!f}LQmN-l7UxmCm{ z_b#VgorbxZvw?Zj?ft?prL54T?PKp;E`uT5%m=aF#(x5urkxY#>z$#_TFr}=CMN#L z4b`pxa{94sC~LYYrgsocTpl^_{`H6sP=0MwBoj8WyvIFs7t|MwI?*tD*IrR&6c@wA zDOOf5*T$n;Z_G+_H;sBw#Uy1i@_Q##tkW!{&4~^trftq}mr*<2-!S}|p59{`EK*ix zb$tp5>q_dR)b8yAbT7|28m>*CyUslK^{M`n!MK?guyk zr`yTg9gUG2W#eU;fJL#Gy-)1T09$Ga~WW)D}TyaUCYOUYt)^y*{hj5YZ09@vAeDjmf4nq4DO9U=HsTM{j@P^>M zI-T}Qz66crOkAVYZ6ifk6X$-$l8oJkt6p38YMXW#10Cko**4%ou+vOzqt`KoHgQJ^ z6yG<5LN_8rwAa5Tz9qUqU*pJBG})PRaoM{0PqtERA^$v|!#jqGh5E6YEBFJMl%#pX zxm9VFlI&Aj(wiR>Mv!0Kfu0613y8((RtHfk7h&ZUE&4zvhNg#Nx?cyoJw7y{55HoM zjT(tm3niV)GQe298W6aspZZ`wul_aWv^$i4$ zzW$78U&*<+SC;2o_%ja*8~>~x8weKVK>IS*m=^wM${>tXnmKfkjG)6pXj?~XwZ9rG zpQIP5oYvJ=f5wWzdg2ci9($#@52e|+t-f3H*RH21z4Bp@WL;h!W8PqC|5uq+E)SBf zJ^njngT3ZZ_Od>=OebV(>&!YxK!NcUi4d>QK+R z(`IZapoHA5t5++*@&P@B524Sv*DqvgSaMsSd-9MX%fJuzJXv$; zI&mgB5{w>3Cdq6(Qh@0cZ3A>CF{^3~U{~|CQ)y?6%{5j3r2dhAOOhx+uy3~>oDGw4f9V#Q< z5N>dJWX~*z6^likXcu6nr)x1NwWHNq?$){o#&eKC^H1BhEt7@-$d05MfJ0%vk2c#DqvB|5Aqb{*c)OFwzR!tIhy;fkuIV-M9T zTI8}*v=WPt$f)-yl|~wcpCW48{a~oj1?9<1@a3M(FiOHaa($i{Bg{_6;ztURN42p-A*H|c7dRIopPpwv$GpWC$E14 zLYI78`rZz|a1JY#Jl>CVJv41Y7cBTM)q*Vk8Z>JV|g`1W=bOA?DwZdy_8wuk2 zVFJ0P{-ksZUqdxnnwd_cC}ZwzKOX42MG)gIZ}3>j9Akk(MtMwjF<<`3&m0egiXlAA z2Hm_t*$N7umQ+zn1mdQX-L}-!34=JNn)zSND<+xCT1V3ht$}bX=PQR?va!~bGti4Z zt%C-+g*)rSN7G!KeCFT*MNPc4_^ujRW98#gGXNd!fh}=Ho!r^{=n~hftE?-Ju*NG$ z$mlng>B&+vi;lFcDcgl%i0HwQQt=dm&9NWW|c%u1JuDQW+n{yIM!5@3;Fk3JxowfGP&frBYGSlQ z69~G>&>Unr5@NJ5>Xq|{#-J=JJ5C^seTc7rsT>=+yK7YwMECL=$XU$NvLK11SRw6b1_zx&l$v#6kOTV~Cz&T zA@(uO7+&b#`NfDEoUlDW6*s))IAcESbs<`IMc5(+jOBYc=kv3D3t<1O7PFF{vX#uu zY0j&I{LS)*0*(=DvxdsBV!k<<{U{&I2qx*t9|NcpO1=@8$fWFg*f=8_fY`)+L$=c9 zkUWuN)z%C}s5EeCJ;HU93f5tg?ASeMppdTJoI#t3Sh}oQZh|sHWx^aUft7jGzy(|u z$A?Fz59c-u-gjpc;lFp$A9rk@)9>*ktj=X&ck%SxA*9GI`RrErx#`@<|GvX? zWAnC~jxU)tN59fF4g@9f5gv*meRyl>+~gPLV$g(O?LR zmirowip2!Ar)qXhjfP@_Lt9FFl8^}D7X~lQ0--{s^awy2!&UW91<(`gWICh|P0a6? zA#C&#v83<3vghy!zXC5Mi;Ix|zCCJVGymZ(Dd|Dcw}5XUzmb}j#?VJNfQs7}!7mEU z_m}L?eMigl^8x-(XRxN5st0&vB0aIoN4(|G@HMOixPBH_XapZtIV+UhDP+;QPEHy@%5`FZi^E^*sC1To_n-p{U z6VeEECODcj+m1{1qF1wr5?RJ0-sj60_tpwV2a_U%8kYPb5_Pe24}Q_8 zjSza$E8NLc$`LGNB%Lq|_x45!nrW^stpFK_^-|cI5D=Nj*-A*_jB*jDn-=MGMyDrm z-O36rEv*pvK3y3Cg3mu34$lderZH6~$<0RX8XZJ=^Nv_}2B7$yTooXYVjbfET1nyT z!0yfs-SThQ!ym^c57$G$O)++!?FV=$LgzrQHe{kP1bRkupw3XbrSzrxQtFCkt~5^t z_muN(!o>VLSmJWy6~A*Wn9Btar@AqnF+88e6uRdZsG~QN>~4AC8?p?PEifQr4w&Kj zLty{qIoGWQLQgWI(N@dx3uMwVVSS?-^N|gHo5;eV6Cct%Vq{z)q&;M$4ijDvG9Fr3 zM|ncl8hL1c$RRTt0e^6CM+KAx^5wEK&Au5Zi3g)KbE$n7qc~};Ip>b|?7+%VJlzI| zhTDq6mwxRM9DU%{Q}FzrBSiPGY9V#91Wy^|_K1lkc1hnTBG^w5+e`!Obyk(2Ty>5k zM0l!syOf@sg~902n_=j$!qYP%XYIhOD4Vu`RZVY7k16( z6F>ZTnMALhD|&Nv72Nm7NVQabfjjzrAjQHLI@)7ve|8*!g*Rg}v#R?t0~8)=_-MC! zwkrU5DK6*H$_8pvD)V;%q28d7M~hpe)D3?83~N0Yp;Rm;gr!!-;-5UEhF{+F)yOqo zeBMZnDd~W9q9c>u1c34G@jvKrP`zkStN`#(AA2)lB&#AV6UPyfzdYjPtMV7~Z?e!d z07^xgteoB;X|YW2m8+AOGXMCSB}1dcC4wlF>;>mqUJqrLY`Qm3%MSPQH|k?9$g8D* zDx2SF`ya~GBv~?4UNAbWTnwK-&(i+qi2*WKx1ZTA0?s(mH;BZ! z>)N44$Ia1^;=?FB@^GNvVRVwFbn|+eUO<<*_<%4q*GnoPagD1_ER(YvXMr$KV#8rX z)~-t;W0U2R)Z;V4lV?}PB9Hgnv5l>1=WPEfG#u6{*EiS(!>%?myjoB=)jH^WKfC;Nf(lH-jSzPLZyRUT%(ES5w@ zP!S~riX{zReGE7!5_y{&Hpv-xGK5HE>U!z=?s@HZpRw}qRC3xtEi9h0+-Q4_h+Xqh zCsbjxxrQP@07z7@Z$VX6MQW1rmPlzX!>P{mrk&^E+=9eo_bG$-_n)V$9uC_tAOhKO zo`;=pju};U`K1%a#YMJH{~PKHg0}8S7+!cDYAFyq8b$_$$MnNG9x$H=@LyK?yF?(< z@k?aV_!gKrH!&?~hp(3lz~!G_ngk@6wfzBmQP~Ti4WPL1y*Zj`Dopm=X;z}M+mVhO z-TI9ExI$u3vPxF&;Scu3QekNs{Pj@D2A{*HnhN{Rw*p*1iM`o2+QC8cv=n)$Q5EaR zf>$^#@t9{)2RGE31!6u|s%6vkP$+O6_#Als)$xCp1W*CqS8rdU1A*~@V<~`2*D+JB z4&L9ra|FA2R*^ z`+BVBuXjNMBr48XPKpN}BmjAVH}V6EmjZ6hqIBJfzLZ=-&Xd>neFg5xD*rb8DNReN zkWHa*+D4O5frjzz!$E*XB8tA@xqPM5-Sa#Lw>I8imHrzOKJtHK%7h50_3z&uWOvng za>U0WA&wB*CF3?RN7&O69Y{MZh(0~Ma2@{@C%Mr#7Kxv`X%$BP6VJ*vHslK4yw|M^ z|5!S*wNKq0guMCB+1z@{?LGbTn`Nv0Eb^~Tshw-B(R-MS=gCDwmff36m~+U=ilRx} zc1G>`Yu9B|1v3;QkN-BJ+nsCz#AA0bqB)Pdv)GF-v`IX z7a)_WnNw9lF3}1K=N^Hgx%BoA3=QmgKD@Kv93~F{%<%uiUs#G%Y^_9^_0RuHll{8* Z@Mc29Rd1{)Bl2-v5+br+iiE!Y{2w3rLWBSS literal 0 HcmV?d00001 diff --git a/src/assets/images/overview/liquify_logo.svg b/src/assets/images/overview/liquify_logo.svg new file mode 100644 index 0000000..31df643 --- /dev/null +++ b/src/assets/images/overview/liquify_logo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/images/overview/loading.png b/src/assets/images/overview/loading.png new file mode 100644 index 0000000000000000000000000000000000000000..9f797af0e1667ed9dfbe904998c4d829cfb41f53 GIT binary patch literal 22561 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

J-nv;$oo27 zNsEJbK4F8V!$*pL^*M|vFygpo2s_HQ@#w6N`Za?<95^e6!HU($HaZGk52LjA>Da@8 zxY@P=P6?JOj>9-ct{p)p2%1>Gi@RgB$3Uwn$~%yQ_4~`IKi02Z_~RW_L0onkMR7Uf z4cEVzs5`#Ad@ceEvV>)PG_!M?wvrogJ0J%E~lLGx!oqa?R9v05GRz;_1s~71~{FCgP`KTrE$Rqx2zwq z%R29CVrJu3)$9^)x2nz$zwXeA%`NfMtrgX42iRZideu4)!yPR>?fF^uE+zse3@oN% zSmY}Oyj?S0m#^H>-K&R_onBE|Ii-OAxjwBR=w4jr+JhdV1_NW12bit+WC-MSfQtgu zOPKZ0j*-f04Z!^1_lU@RqbT(}&BY=zj*FNts44g0fZhXv(U+{Tg5Ye{S5lY0(x-Ig zCq8!Q4`Gy1Q8pxRc*EECT{m5GM4_ivAau|5YBF(2*4!|$by6&1!d}36N z#WE_&MhLrS-O@duR|eD(3GsPF8}_fRm`A)}5M4(bm`W~rb8wG`3>l@xxl_0}d)U}5 z!ZvfaD&T+`R!y!hU)5qc)|cKZ-{XfxnZ61%`O3Nn*Iv6byHy(_qoQnry!MP$`z@Wq z({PdwF5~XtGWwp*qrXkB*FA^0fL)&S%xE + + + + + + + + diff --git a/src/assets/images/overview/mcap_rank.svg b/src/assets/images/overview/mcap_rank.svg new file mode 100644 index 0000000..231d307 --- /dev/null +++ b/src/assets/images/overview/mcap_rank.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/images/overview/power.svg b/src/assets/images/overview/power.svg new file mode 100644 index 0000000..d517844 --- /dev/null +++ b/src/assets/images/overview/power.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/overview/rune_usdt.svg b/src/assets/images/overview/rune_usdt.svg new file mode 100644 index 0000000..8eba921 --- /dev/null +++ b/src/assets/images/overview/rune_usdt.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/images/overview/time_icon.svg b/src/assets/images/overview/time_icon.svg new file mode 100644 index 0000000..0de9ea7 --- /dev/null +++ b/src/assets/images/overview/time_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/overview/total_supply.svg b/src/assets/images/overview/total_supply.svg new file mode 100644 index 0000000..f7aa413 --- /dev/null +++ b/src/assets/images/overview/total_supply.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/images/overview/twitter_link_icon.svg b/src/assets/images/overview/twitter_link_icon.svg new file mode 100644 index 0000000..341cc4b --- /dev/null +++ b/src/assets/images/overview/twitter_link_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/thornode.svg b/src/assets/images/thornode.svg new file mode 100644 index 0000000..45ec232 --- /dev/null +++ b/src/assets/images/thornode.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/styles/globalStyle.js b/src/assets/styles/globalStyle.js index a3ba055..471ca3a 100644 --- a/src/assets/styles/globalStyle.js +++ b/src/assets/styles/globalStyle.js @@ -4,7 +4,20 @@ import { palette, font } from 'styled-theme'; const GlobalStyles = createGlobalStyle` .ant-btn{ - border-radius: 4px; + border-radius: 7px; + } + + .ant-btn-primary{ + background: #1C39BB; + border-color: #1C39BB; + } + + .ant-switch-checked { + background: #1C39BB; + } + + .uppercase{ + text-transform: uppercase; } .header { @@ -47,7 +60,7 @@ const GlobalStyles = createGlobalStyle` .ant-select-dropdown-menu-item { padding: 8px 12px; color: #000000; - font-family: 'Roboto'; + font-family: 'Montserrat'; font-weight: 400; } } @@ -199,6 +212,8 @@ svg { body { -webkit-overflow-scrolling: touch; + color: #182233; + letter-spacing: -0.015em; } html h1, @@ -218,7 +233,7 @@ html, body, html a { margin-bottom: 0; - font-family: 'Roboto', sans-serif; + font-family: 'Montserrat', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.004); diff --git a/src/aws-exports.js b/src/aws-exports.js new file mode 100644 index 0000000..2c23a5c --- /dev/null +++ b/src/aws-exports.js @@ -0,0 +1,3 @@ +// eslint-disable-next-line no-lone-blocks +{ +} \ No newline at end of file diff --git a/src/commonFunctions.js b/src/commonFunctions.js index 3b65717..f378a33 100644 --- a/src/commonFunctions.js +++ b/src/commonFunctions.js @@ -6,6 +6,8 @@ import { awsConfig } from './aws-exports'; import moment from 'moment'; import semver from 'semver'; +import axios from 'axios'; + import { store } from './redux/store'; import authActions from '@iso/redux/auth/actions'; @@ -17,7 +19,15 @@ export const getData = async () => { //const [firstLoad, setFirstLoad] = useState(false); const blockTime = 6 //6 seconds Need to calc this properly - const val = await API.get('MyAWSApi', ''); + // const val = await API.get('MyAWSApi', ''); + // const val = prodData; + var val = {}; + try { + const res = await fetch("https://api.liquify.com/thor/api/grabData"); + val = await res.json(); + } catch (error) { + val = {}; + } if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') { console.log('DEV ONLY: Raw getData API Call Results: ', val) @@ -116,8 +126,8 @@ export const getData = async () => { } export const refreshData = async () => { + return false - apiCall('getUserData') .then(results => { store.dispatch(authActions.saveData(results)) diff --git a/src/components/VisibleColumn/VisibleColumn.js b/src/components/VisibleColumn/VisibleColumn.js new file mode 100644 index 0000000..5fdf32c --- /dev/null +++ b/src/components/VisibleColumn/VisibleColumn.js @@ -0,0 +1,100 @@ +import React, { useState } from 'react'; +import { Modal, Button, Switch } from 'antd'; + +import filterIcon from '@iso/assets/images/overview/filter.svg'; + +function VisibleColumn({ initialConfig, onConfigUpdate }) { + const [isModalVisible, setIsModalVisible] = useState(false); + const [config, setConfig] = useState({ + ...initialConfig + }); + + const handleConfigChange = (key, value) => { + setConfig(prevConfig => ({ ...prevConfig, [key]: value })); + }; + + const handleOk = () => { + setIsModalVisible(false); + console.log('Updated config:', config); + if (onConfigUpdate) { + onConfigUpdate(config); + } + }; + + const handleCancel = () => { + setIsModalVisible(false); + }; + + const handleOpenModal = () => { + setIsModalVisible(true); + }; + + return ( +

+ ); +} + +export default VisibleColumn; \ No newline at end of file diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js new file mode 100644 index 0000000..2f41fa8 --- /dev/null +++ b/src/containers/A_monitor/activepage.js @@ -0,0 +1,844 @@ +import React, { Component, useState } from 'react'; +import Modals from '@iso/components/Feedback/Modal'; +import Popover from '@iso/components/uielements/popover'; +import { getData, setCookie, getCookie } from 'CommonFunctions' +import { ModalContent } from '../Feedback/Modal/Modal.styles'; +import { Layout, Button, Input, Modal, Switch, Breadcrumb } from 'antd'; +import "./styles.css"; +import { SearchOutlined, LeftOutlined , RightOutlined } from '@ant-design/icons'; + +import heartBlank from '@iso/assets/images/heart-blank.png'; +import heartFull from '@iso/assets/images/heart-full.png'; + +import imageDO from '@iso/assets/images/do.png'; +import imageAWS from '@iso/assets/images/aws.png'; +import imageGCP from '@iso/assets/images/gcp.png'; +import imageAZURE from '@iso/assets/images/azure.png'; +import imageHETZNER from '@iso/assets/images/hetzner.png'; +import imageVULTR from '@iso/assets/images/vultr.png'; + +import binance from '@iso/assets/images/binance.png'; +import eth from '@iso/assets/images/eth.png'; +import bitcoin from '@iso/assets/images/bitcoin.png'; +import litecoin from '@iso/assets/images/litecoin.png'; +import bitcoincash from '@iso/assets/images/bitcoincash.png'; +import dogecoin from '@iso/assets/images/dogecoin.png'; +import gaia from '@iso/assets/images/atom.png'; +import thornode from '@iso/assets/images/thornode.svg'; + +import blockIcon from '@iso/assets/images/overview/block_icon.svg'; +import highTradingIcon from '@iso/assets/images/overview/24high_trading.svg'; +import lowTradingIcon from '@iso/assets/images/overview/24low_trading.svg'; +import bondIcon from '@iso/assets/images/overview/Bond_icon.svg'; +import churnsIcon from '@iso/assets/images/overview/churns_icon.svg'; +import marcketCapIcon from '@iso/assets/images/overview/marcket_Cap.svg'; +import mcapRankIcon from '@iso/assets/images/overview/mcap_rank.svg'; +import runeUsdtIcon from '@iso/assets/images/overview/rune_usdt.svg'; +import timeIcon from '@iso/assets/images/overview/time_icon.svg'; +import totalSupplyIcon from '@iso/assets/images/overview/total_supply.svg'; +import filterIcon from '@iso/assets/images/overview/filter.svg'; +import loadingIcon from '@iso/assets/images/overview/loading.png'; +import githubIcon from '@iso/assets/images/overview/github_link_icon.svg'; +import twitterIcon from '@iso/assets/images/overview/twitter_link_icon.svg'; +import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; + +import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; +import powerIcon from '@iso/assets/images/overview/power.svg'; +import activeIcon from '@iso/assets/images/overview/active_icon.svg'; + + +import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; + +const { Header, Footer, Content } = Layout; + +const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} +const tdStyle = {minWidth: 60, textAlign: 'right', fontSize: 14, padding: '10px 15px'} +const iconStyle = {minWidth: 25, padding: 5, paddingLeft: 10, paddingRight: 10} + + +async function copyToClipWithPopup(msg, ip) { + copyToClipboard(ip) + popUpModal(msg, ip) +} + +const copyToClipboard = str => { + if (navigator && navigator.clipboard && navigator.clipboard.writeText) + return navigator.clipboard.writeText(str); + return Promise.reject('The Clipboard API is not available.'); +}; + +function popUpModal(msg, ip) { + Modals.info({ + title:

Success

, + content: ( + +

+ {`${msg} `} {`${ip}`} +

+
+ ), + onOk() {}, + okText: 'OK', + cancelText: 'Cancel', + className: 'feedback-modal' + }); +} + +const Icons = ({address, ip_address, addToFav, whichHeart}) => { + const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}` + const secondURL = `https://viewblock.io/thorchain/address/${address}` + return ( + + +
+ + + + + + + + + + + + + + + + + + + + + copyToClipWithPopup('IP Copied to clipboard:', ip_address)}> + + + + + + + + #addToFav(address)} src={whichHeart(address)} style={{ cursor:'pointer', marginLeft: 5, marginTop: 2, width: 15, height: 15}}/> + +) +} + +const GlobalData = ({ globalData, animateBlockCount, state}) => { + + let timeToDisplay = ''; + let msgTitle = '' + if (globalData?.churnTry && globalData?.retiring === 'false') { + msgTitle = '(CHURN) RETRY IN' + timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m` + } else if (globalData?.retiring === 'true') { + msgTitle = '(CHURN) CURRENTLY CHURNING' + timeToDisplay = 'Churning' + } else { + msgTitle = '(CHURN) TIME UNTIL' + timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m` + } + + return ( + <> +
+ # +
+
CURRENT BLOCK
+
{parseInt(globalData.maxHeight).toLocaleString()}
+
+
+
+ # +
+
{msgTitle}
+
{timeToDisplay}
+
+
+
+ # +
+
TOTAL BONDED VALUE
+
ᚱ{state.activeNodes.length>0 ? parseInt((state.activeNodes.map(item => item.bond).reduce((prev, next) => prev + next))/100000000).toLocaleString() : '0'}
+
+
+
+ # +
+
MARKET CAP
+
${globalData?.coingecko?.market_cap?.toLocaleString()}
+
+
+
+ # +
+
24 HR VOLUME
+
${globalData?.coingecko?.total_volume?.toLocaleString()}
+
+
+ + ) +} + + +const CoinGeckoData = ({ globalData }) => { + return ( + <> +
+ # +
+
PRICE
+
${globalData?.coingecko?.current_price?.toLocaleString()}
+
+
+
+ # +
+
24 HR HIGH
+
${globalData?.coingecko?.high_24h}
+
+
+
+ # +
+
24 HR LOW
+
${globalData?.coingecko?.low_24h}
+
+
+
+ # +
+
MARKET CAP RANK
+
{globalData?.coingecko?.market_cap_rank}
+
+
+
+ # +
+
TOTAL SUPPLY
+
ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()}
+
+
+ + ) +} + + +const ReturnIspImage = ({isp}) => { + + const style = {width: 25, height: 25} + + if (isp ==='Amazon.com, Inc.' || isp === 'Amazon Technologies Inc.' || isp === 'Amazon.com'){ + return # + } + if (isp ==='DigitalOcean, LLC' || isp==='DigitalOcean'){ + return # + } + if (isp ==='Google LLC'){ + return # + } + + if (isp ==='Microsoft Corporation'){ + return # + } + + if (isp ==='Hetzner Online GmbH'){ + return # + } + + if (isp ==='The Constant Company' || isp === 'The Constant Company, LLC'){ + return # + } + + + return '-' +} + +const ChainTD = ({chain, obchains, maxChainHeights}) => { + const delta = obchains[chain]-maxChainHeights[chain] + return ( + {delta===0 ? 'OK' : delta.toString()} + ) +} + +const BondProviderPopOver = ({data}) => { + const totalBond = data.map(item=>parseInt(item.bond)).reduce((a, b) => a + b, 0) + + const d = data.map((item,index) => { + return ( +
+ {item.bond_address.substring(item.bond_address.length-4, item.bond_address.length)} + {((item.bond/totalBond)*100).toFixed(2)}% + ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} +
+ ) + }) + return d +} + +const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { + + + const [currentPage, setCurrentPage] = useState(1); + const itemsPerPage = 20; + + const totalPages = Math.ceil(nodeData.length / itemsPerPage); + const pageNumbers = []; + + for (let i = 1; i <= totalPages; i++) { + pageNumbers.push(i); + } + + const handleClick = (event) => { + setCurrentPage(Number(event.target.id)); + }; + + const handleNext = () => { + setCurrentPage((prevPage) => (prevPage === totalPages ? prevPage : prevPage + 1)); + }; + + const handlePrev = () => { + setCurrentPage((prevPage) => (prevPage === 1 ? prevPage : prevPage - 1)); + }; + + const renderPageNumbers = pageNumbers.map((number) => { + return ( +
  • + {number} +
  • + ); + }); + + const indexOfLastItem = currentPage * itemsPerPage; + const indexOfFirstItem = indexOfLastItem - itemsPerPage; + const currentItems = nodeData.slice(indexOfFirstItem, indexOfLastItem); + + const getHeaderClassName = (key) => { + return visibleColumns && visibleColumns[key] ? 'tableHeader' : 'tableHeader hidden' + }; + + const getCellClassName = (key) => { + return visibleColumns && visibleColumns[key] ? '' : 'hidden' + }; + + return ( +
    + + + + + + + + + + + + + + + + + + {chains && + <> + + + + + + + + + } + + + + {currentItems.map((item, index) => ( + + + + + + + + + + + + + + + + {chains && + <> + + + + + + + + + } + + ))} + +
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionRPC#######
    + + copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> + {`${item.node_address.substring(0, Math.min(9, item.node_address.length))}...`} + + + + {item.age.toFixed(2)}{item.action}{item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } + title={'Bond Providers'} + trigger="hover" + >{item.bond_providers.providers.length} + + ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}
    + +
    +
      +
    • + {renderPageNumbers} +
    • +
    +
    +
    + ) +} + +let timer = null; + +const defaulColumns = { + nodes: true, + age: true, + action: true, + isp: true, + bond: true, + providers: true, + rewards: true, + apy: true, + slashes: true, + score: true, + version: true, + rpc: true, + } +export default class extends Component { + constructor(props) { + super(props); + this.state = { + data: [], + globalData: [], + sortBy: 'bond', + sortDirection: 'desc', + activeNodes: [], + standByNodes: [], + whitelistedNodes: [], + animateBlockCount: false, + myFavNodes: [], + searchTerm: '', + visibleColumns: defaulColumns, + nodesFilter: {}, + loading: true, + }; + } + + async componentWillMount() { + + const myFavNodes = getCookie('myFavNodes') + + const tmp = myFavNodes.length>0 ? JSON.parse(myFavNodes) : [] + + this.setState({ myFavNodes: tmp }) + + this.refreshData() + } + + async refreshData() { + const data = await getData() + + if (this.state.loading) { + this.setState({ loading: false }); + } + + if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') { + console.log('DEV ONLY: Refresh Data Results: ', data) + } + + this.setState({data: data.data, globalData: data.globalData, maxChainHeights: data.maxChainHeights, animateBlockCount: false}, ()=>this.setData()) //Change animateBlockCount to true here for animation + } + + componentDidMount() { + + timer = setInterval(() => { + this.setState({animateBlockCount: false}, ()=>this.refreshData()) + //this.refreshData() + }, 6000) + } + + componentWillUnmount() { + clearInterval(timer); + } + + addToFav(address) { + + //setCookie('myFavNodes', '') + //return + + //Below works to add, but need to check if already exists, and if so remove + + const myFavNodes = getCookie('myFavNodes')//JSON.parse( + + if(myFavNodes.length===0) { + //in here no current fav nodes + const singleAddress = JSON.stringify([address]) + setCookie('myFavNodes', singleAddress) + this.setState({myFavNodes: singleAddress}, ()=>this.setData()) + + } else { + //If we already have some fav nodes + const newFaveNodes = JSON.parse(myFavNodes) + + //Need to check if already exists + if (newFaveNodes.indexOf(address) > -1) { + //In the array! + + const newArrayWithRemove = newFaveNodes.filter(item => item!==address) + + const newFaveNodesNew = JSON.stringify(newArrayWithRemove) + this.setState({myFavNodes: newArrayWithRemove}, ()=>this.setData()) + setCookie('myFavNodes', newFaveNodesNew) + + } else { + //Not in the array + newFaveNodes[newFaveNodes.length] = address + + const newFaveNodesNew = JSON.stringify(newFaveNodes) + + this.setState({myFavNodes: newFaveNodes}, ()=>this.setData()) + setCookie('myFavNodes', newFaveNodesNew) + + } + + } + + } + + returnSearchedData(data) { + if (this.state.searchTerm === '') { + return data + } else { + const filteredNodes = data.filter(item => item.node_address.includes(this.state.searchTerm)) + return filteredNodes + } + } + + setData() { + //Grab our state so we can mutate it + let myData = JSON.parse(JSON.stringify(this.state.data)) + + + + + //Add faves to the data, then we can sort by then below + const newItems = myData.map(item => { + if (this.state.myFavNodes.includes(item.node_address)) { + item.fave = 1 + } else { + item.fave = 0 + } + return item + }); + +/* +Whitelisted +Active +Standby +Ready +Disabled +*/ + + //Filter for our three tables + let activeNodes = newItems.filter(item => item.status ==='Active') + let standbyNodes = newItems.filter(item => (item.status ==='Standby' || item.status ==='Ready') && item.version === this.state.globalData.maxVersion) + + //Create an array of all nodes that are active and standby + const active_standy_nodes = [ ...activeNodes.map(item => {return item.node_address}), ...standbyNodes.map(item => {return item.node_address})] + //White listed are all other nodes which are not active or on standby + //White listed is really just "Other" + let whitelisted = newItems.filter(item => !active_standy_nodes.includes(item.node_address)) + + //let whitelisted = newItems.filter(item => !(item.status ==='Active' || item.status ==='Standby' || item.status ==='Ready') /*&& item.version !== this.state.globalData.maxVersion*/) + + activeNodes = this.findChurnOuts(activeNodes) //Add in the actions for churning + standbyNodes = this.findChurnIns(standbyNodes) //Add in the actions for nodes churning in + + //Filter here if any searchTerm from the search bar + //Need to do after adding the actions + activeNodes = this.returnSearchedData(activeNodes) + standbyNodes = this.returnSearchedData(standbyNodes) + whitelisted = this.returnSearchedData(whitelisted) + + //Sort and add our favs to the top + let activeNodesSorted = this.sortData(activeNodes) + const favActiveNodesSorted = activeNodesSorted.filter(item => item.fave === 1) //Get our favourites + activeNodesSorted = activeNodesSorted.filter(item => item.fave === 0)//Get our non favourites + + activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted] //Join faves at top with non favourites + + + const standBySorted = this.sortData(standbyNodes) + const whitelistedSorted = this.sortData(whitelisted) + + this.setState({ + activeNodes: activeNodesSorted, + standByNodes: standBySorted, + whitelistedNodes: whitelistedSorted //This is really just other + }) + } + + + onColumnUpdate (config) { + this.setState({ visibleColumns: config }) + } + + onNodesFilter (key) { + this.setState(prevState => ({ + nodesFilter: { + ...prevState.nodesFilter, + [key]: !prevState.nodesFilter[key] + } + })); + } + +/* +Split the data into over 300ks and under 300ks +With the over 300ks, take the top 3 if they exist and apply churn in action +If 4 nodes churn in instead of 3 each time, add another row +*/ + findChurnIns(standbyNodes) { + if (standbyNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + + const over300 = standbyNodes.filter(item => item.bond >= 30000000000000) + const over300Sorted = this.sortData(over300, 'bond', 'desc') + + if (over300Sorted.length > 0){ + over300Sorted[Math.min(0, over300Sorted.length-1)].action = 'Churn In' + over300Sorted[Math.min(1, over300Sorted.length-1)].action = 'Churn In' + over300Sorted[Math.min(2, over300Sorted.length-1)].action = 'Churn In' + over300Sorted[Math.min(3, over300Sorted.length-1)].action = 'Churn In' + over300Sorted[Math.min(4, over300Sorted.length-1)].action = 'Churn In' + } + const under300 = standbyNodes.filter(item => item.bond < 30000000000000) + + return [...over300Sorted, ...under300] + } + +/* +Lowest Bond +Oldest Node +Worst Performer (Can't churn out if just churned in, one cycle grace period) +*/ + findChurnOuts(activeNodes) { + if (activeNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + + let activeNodesSorted = this.sortData(activeNodes, 'age', 'desc') + activeNodesSorted[0].action = 'Oldest' + + activeNodesSorted = this.sortData(activeNodes, 'bond', 'asc') + activeNodesSorted[0].action = 'Smallest Bond' + + activeNodesSorted = this.sortData(activeNodes, 'score', 'asc', true) + //we set the 'Worst Performing' tag in the sortData function + + this.calcBadValidatorRedline(activeNodes) + + return activeNodesSorted + } + + calcBadValidatorRedline(activeNodes){ + //Only get nodes with slashes greater than 100 + const greater100Slashes = activeNodes.filter(item => item.slash_points > 100) + //Add all the scores together for thes nodes + const sum = greater100Slashes.reduce((accumulator, object) => { + return accumulator + parseFloat(object.score); + }, 0); + //Find the average + const averageScore = sum/(greater100Slashes.length+1) + + const validatorLine = averageScore/this.state.globalData.BadValidatorRedline + + activeNodes.map(item => { + if(item.score < validatorLine) { + item.action = 'Bad Redline' + } + return 0 + }) + + } + +/* +Sort by either string or number +We use string sort function if value is one of the arrays else do second sort number +*/ + sortData(data, value = null, direction = null, worst_perform = false) { + const toSortBy = value === null ? this.state.sortBy : value + let newData = [] + + if (['node', 'isp', 'location', 'version', 'action', 'node_address'].includes(toSortBy)){ //This sort function for strings + newData = data.sort((a, b) => a[toSortBy].localeCompare(b[toSortBy])); + + } else if (toSortBy === 'bond_providers') {//This is for bond provider sort as we need to go another layer deep in the object + newData = data.sort((a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length); + + } else if (worst_perform === true) { //This is for when we are sorting for action of worst performance as we want to exclude any with age under 3 days + const ageCutOffDays = 3 + const a = data.filter(item => parseFloat(item.age) > ageCutOffDays) + const b = data.filter(item => parseFloat(item.age) <= ageCutOffDays) + const aSorted = a.sort((a, b) => (b[toSortBy] - a[toSortBy]) ); + + aSorted[aSorted.length-1].action = 'Worst Performing' + newData = [...aSorted, ...b] + + } else { //This sort function for numbers + //When sorting, if values are the same, sort by node_address + newData = data.sort( + function(a, b) { + if (a[toSortBy] === b[toSortBy]) { + return a['node_address'].localeCompare(b['node_address']); + } + return a[toSortBy] > b[toSortBy] ? 1 : -1; + }); + } + //If we pass it a direction, we set it here, if not we take it from the state + const toDirection = direction === null ? this.state.sortDirection : direction + if (toDirection === 'desc') { + newData.reverse() + } + + return newData + } + + clickSortHeader(item){ + const direction = this.state.sortBy !== item ? 'desc' : this.state.sortDirection === 'desc' ? 'asc' : 'desc'; + this.setState({sortBy: item, sortDirection: direction}, ()=> this.setData()) + } + + sortColour(item) { + return '#ffffff' + } + + whichHeart(address){ + return this.state.myFavNodes.includes(address) ? heartFull : heartBlank + } + + + searchBar() { + return ( +
    + this.setState({ searchTerm: event.target.value.trim()},()=>this.setData())} + prefix={} + /> +
    + ) + } + + render() { + + const { loading, nodesFilter, visibleColumns, activeNodes } = this.state; + + return ( + +
    +
    + # + Thornode Monitor +
    +
    +
    this.onNodesFilter('active')}>
    +
    this.onNodesFilter('standby')}>
    +
    this.onNodesFilter('orthers')}>
    +
    + +
    + + + {loading && ( +
    + )} + + {!(loading) && ( +
    + + }> + Dashboard + Active Nodes + + +
    +
    + + +
    +
    + + <> +
    +
    + +
    + {this.searchBar()} + + +
    + + {activeNodes.length > 0 && ( + + )} + {activeNodes.length === 0 && ( +
    +
    No Active Data Available!
    +
    + )} + +
    + )} +
    +
    + # + # +
    + Built by: + # +
    +
    +
    + ); + } +} \ No newline at end of file diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index fa124fb..e72544c 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -1,4 +1,6 @@ -import React, { Component } from 'react'; +import React, { Component, useState } from 'react'; +import isEmpty from 'lodash/isEmpty'; + //import LayoutContentWrapper from '@iso/components/utility/layoutWrapper'; //import LayoutContent from '@iso/components/utility/layoutContent'; import Modals from '@iso/components/Feedback/Modal'; @@ -6,10 +8,13 @@ import Popover from '@iso/components/uielements/popover'; import { getData, setCookie, getCookie } from 'CommonFunctions' //import { someFunc } from './monitor_functions' //import Spin from '@iso/ui/Antd/Spin/Spin'; -import Input from '@iso/components/uielements/input'; +// import Input from '@iso/components/uielements/input'; import { ModalContent } from '../Feedback/Modal/Modal.styles'; -import { Layout } from 'antd'; +import { Layout, Button, Input, Modal, Switch, Breadcrumb } from 'antd'; import "./styles.css"; +import { Link } from 'react-router-dom'; +import { PUBLIC_ROUTE } from '../../route.constants'; +import { SearchOutlined, LeftOutlined , RightOutlined } from '@ant-design/icons'; //import { retiringVault } from './data.js' //https://thornode.ninerealms.com/thorchain/vaults/asgard import heartBlank from '@iso/assets/images/heart-blank.png'; @@ -30,13 +35,37 @@ import bitcoincash from '@iso/assets/images/bitcoincash.png'; import dogecoin from '@iso/assets/images/dogecoin.png'; //import luna from '@iso/assets/images/luna.png'; import gaia from '@iso/assets/images/atom.png'; +import thornode from '@iso/assets/images/thornode.svg'; + +import blockIcon from '@iso/assets/images/overview/block_icon.svg'; +import highTradingIcon from '@iso/assets/images/overview/24high_trading.svg'; +import lowTradingIcon from '@iso/assets/images/overview/24low_trading.svg'; +import bondIcon from '@iso/assets/images/overview/Bond_icon.svg'; +import churnsIcon from '@iso/assets/images/overview/churns_icon.svg'; +import marcketCapIcon from '@iso/assets/images/overview/marcket_Cap.svg'; +import mcapRankIcon from '@iso/assets/images/overview/mcap_rank.svg'; +import runeUsdtIcon from '@iso/assets/images/overview/rune_usdt.svg'; +import timeIcon from '@iso/assets/images/overview/time_icon.svg'; +import totalSupplyIcon from '@iso/assets/images/overview/total_supply.svg'; +import filterIcon from '@iso/assets/images/overview/filter.svg'; +import loadingIcon from '@iso/assets/images/overview/loading.png'; +import githubIcon from '@iso/assets/images/overview/github_link_icon.svg'; +import twitterIcon from '@iso/assets/images/overview/twitter_link_icon.svg'; +import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; + +import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; +import powerIcon from '@iso/assets/images/overview/power.svg'; +import activeIcon from '@iso/assets/images/overview/active_icon.svg'; + + +import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; const leaveIcon = const { Header, Footer, Content } = Layout; -const headerStyle = {cursor: 'pointer', paddingLeft: 10, paddingRight: 10} -const tdStyle = {minWidth: 60, textAlign: 'right', fontFamily: 'monospace', fontSize: 14} +const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} +const tdStyle = {minWidth: 60, textAlign: 'right', fontSize: 14, padding: '10px 15px'} const iconStyle = {minWidth: 25, padding: 5, paddingLeft: 10, paddingRight: 10} @@ -60,13 +89,14 @@ function popUpModal(msg, ip) { content: (

    - {`${msg} ${ip}`} + {`${msg} `} {`${ip}`}

    ), onOk() {}, okText: 'OK', cancelText: 'Cancel', + className: 'feedback-modal' }); } @@ -74,27 +104,37 @@ const Icons = ({address, ip_address, addToFav, whichHeart}) => { const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}` const secondURL = `https://viewblock.io/thorchain/address/${address}` return ( - - - - - - - - + - + {/* */} + + + + + + + {/* */} + + + + + + + + + + { trigger="hover" > copyToClipWithPopup('IP Copied to clipboard:', ip_address)}> - + {/* */} + + + + + - - #addToFav(address)} src={whichHeart(address)} style={{ cursor:'pointer', marginLeft: 5, marginTop: 2, width: 15, height: 15, opacity: 0.5}}/> + #addToFav(address)} src={whichHeart(address)} style={{ cursor:'pointer', marginLeft: 5, marginTop: 2, width: 15, height: 15}}/> ) } const GlobalData = ({ globalData, animateBlockCount, state}) => { - if (globalData.length===0) return null - - const title = {fontWeight: 800, textAlign: 'right', borderStyle: 'none', minWidth: 170} - const values = {textAlign: 'right', borderStyle: 'none', paddingLeft: 20} - const tr = {} - - /* - Logic to display whether we are normal, trying to churn or churning - If churnTry is true then seconds to churn is negative, if retiring is also false (no RetiringVaults found) this means we have finished the 3 day period and now in retrying churn phase - Soon as retiring = true means we have found RetiringVault in the api response and this means we are in the churn phase - If neither of these conditions are met, ie churnTry = false and retiring = false then we are in normal countdown until next churn - */ + let timeToDisplay = ''; let msgTitle = '' - if (globalData.churnTry && globalData.retiring === 'false') { - msgTitle = '(Churn) Retry In:' - timeToDisplay = `${globalData.timeUntilRetry.days}d ${globalData.timeUntilRetry.hours}h ${globalData.timeUntilRetry.minutes}m` - } else if (globalData.retiring === 'true') { - msgTitle = '(Churn) Currently Churning:' + if (globalData?.churnTry && globalData?.retiring === 'false') { + msgTitle = '(CHURN) RETRY IN' + timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m` + } else if (globalData?.retiring === 'true') { + msgTitle = '(CHURN) CURRENTLY CHURNING' timeToDisplay = 'Churning' } else { - msgTitle = '(Churn) Time Until:' - timeToDisplay = `${globalData.timeUntilChurn.days}d ${globalData.timeUntilChurn.hours}h ${globalData.timeUntilChurn.minutes}m` + msgTitle = '(CHURN) TIME UNTIL' + timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m` } - //timeToDisplay = `${globalData.timeUntilChurn.days}d ${globalData.timeUntilChurn.hours}h ${globalData.timeUntilChurn.minutes}m` - return ( - - - - - - - - - - - - - - - - - - - - - - - -
    Current Block:{parseInt(globalData.maxHeight).toLocaleString()}
    {msgTitle}{timeToDisplay}
    Total Bonded Value:ᚱ{state.activeNodes.length>0 ? parseInt((state.activeNodes.map(item => item.bond).reduce((prev, next) => prev + next))/100000000).toLocaleString() : '0'}
    Market Cap:${globalData.coingecko.market_cap.toLocaleString()}
    24hr Vol:${globalData.coingecko.total_volume.toLocaleString()}
    + <> +
    + # +
    +
    CURRENT BLOCK
    +
    {parseInt(globalData.maxHeight).toLocaleString()}
    +
    +
    +
    + # +
    +
    {msgTitle}
    +
    {timeToDisplay}
    +
    +
    +
    + # +
    +
    TOTAL BONDED VALUE
    +
    ᚱ{state.activeNodes.length>0 ? parseInt((state.activeNodes.map(item => item.bond).reduce((prev, next) => prev + next))/100000000).toLocaleString() : '0'}
    +
    +
    +
    + # +
    +
    MARKET CAP
    +
    ${globalData?.coingecko?.market_cap?.toLocaleString()}
    +
    +
    +
    + # +
    +
    24 HR VOLUME
    +
    ${globalData?.coingecko?.total_volume?.toLocaleString()}
    +
    +
    + ) } -const CoinGeckoData = ({ globalData }) => { - if (globalData.length===0) return null - const title = {fontWeight: 800, textAlign: 'right', borderStyle: 'none', minWidth: 170} - const values = {textAlign: 'right', borderStyle: 'none', paddingLeft: 20} - const tr = {} +const CoinGeckoData = ({ globalData }) => { return ( - - - - - - - - - - - - - - - - - - - - - - - -
    RUNE/USDT:${globalData.coingecko.current_price.toLocaleString()}
    24hr High:${globalData.coingecko.high_24h}
    24hr Low:${globalData.coingecko.low_24h}
    Market Cap Rank:{globalData.coingecko.market_cap_rank}
    Total Supply:ᚱ{globalData.coingecko.total_supply.toLocaleString()}
    + <> +
    + # +
    +
    PRICE
    +
    ${globalData?.coingecko?.current_price?.toLocaleString()}
    +
    +
    +
    + # +
    +
    24 HR HIGH
    +
    ${globalData?.coingecko?.high_24h}
    +
    +
    +
    + # +
    +
    24 HR LOW
    +
    ${globalData?.coingecko?.low_24h}
    +
    +
    +
    + # +
    +
    MARKET CAP RANK
    +
    {globalData?.coingecko?.market_cap_rank}
    +
    +
    +
    + # +
    +
    TOTAL SUPPLY
    +
    ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()}
    +
    +
    + ) - } const ReturnIspImage = ({isp}) => { @@ -237,7 +289,7 @@ const ReturnIspImage = ({isp}) => { const ChainTD = ({chain, obchains, maxChainHeights}) => { const delta = obchains[chain]-maxChainHeights[chain] return ( - {delta===0 ? 'OK' : delta.toString()} + {delta===0 ? 'OK' : delta.toString()} ) } @@ -246,38 +298,86 @@ const BondProviderPopOver = ({data}) => { const d = data.map((item,index) => { return ( -
    - {item.bond_address.substring(item.bond_address.length-4, item.bond_address.length)} - {((item.bond/totalBond)*100).toFixed(2)}% - ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} +
    + {item.bond_address.substring(item.bond_address.length-4, item.bond_address.length)} + {((item.bond/totalBond)*100).toFixed(2)}% + ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()}
    ) }) return d } -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart}) => { +const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { + + // const totalPage = Math.ceil(nodeData.length / 10) + + + const [currentPage, setCurrentPage] = useState(1); + const itemsPerPage = 10; + + const totalPages = Math.ceil(nodeData.length / itemsPerPage); + const pageNumbers = []; + + for (let i = 1; i <= totalPages; i++) { + pageNumbers.push(i); + } + + const handleClick = (event) => { + setCurrentPage(Number(event.target.id)); + }; + + const handleNext = () => { + setCurrentPage((prevPage) => (prevPage === totalPages ? prevPage : prevPage + 1)); + }; + + const handlePrev = () => { + setCurrentPage((prevPage) => (prevPage === 1 ? prevPage : prevPage - 1)); + }; + + const renderPageNumbers = pageNumbers.map((number) => { + return ( +
  • + {number} +
  • + ); + }); + + const indexOfLastItem = currentPage * itemsPerPage; + const indexOfFirstItem = indexOfLastItem - itemsPerPage; + const currentItems = nodeData.slice(indexOfFirstItem, indexOfLastItem); + + const getHeaderClassName = (key) => { + return visibleColumns && visibleColumns[key] ? 'tableHeader' : 'tableHeader hidden' + }; + + const getCellClassName = (key) => { + return visibleColumns && visibleColumns[key] ? '' : 'hidden' + }; return ( -
    - +
    +
    - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + {chains && <> @@ -290,49 +390,42 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai } - - - - - {nodeData.map((item, index) => ( - - - - - - + - - - + + + - - + - - - - - - + + + + + + + {chains && <> @@ -344,18 +437,38 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai } - - ))} -
    clickSortHeader('node_address')}>NODEclickSortHeader('age')}>AGEclickSortHeader('action')}>ACTIONclickSortHeader('isp')}>ISPclickSortHeader('location')}>LOCATIONclickSortHeader('bond')}>BONDclickSortHeader('bond_providers')}>PROVIDERSclickSortHeader('current_award')}>REWARDSclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SLASHESclickSortHeader('score')}>SCOREclickSortHeader('version')}>VERSIONclickSortHeader('leave')}>{leaveIcon}
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionRPC#RPCBFR
    {index+1} + {currentItems.map((item, index) => ( +
    - copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {item.node_address.substring(item.node_address.length-4,item.node_address.length)} + copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> + {`${item.node_address.substring(0, Math.min(9, item.node_address.length))}...`} {item.age.toFixed(2)}{item.action}{item.age.toFixed(2)}{item.action} {item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } title={'Bond Providers'} trigger="hover" - >{item.bond_providers.providers.length} + >{item.bond_providers.providers.length} ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.forced_to_leave === "true" || item.requested_to_leave === "true" ? 'yes' : '-'}ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}{item.rpc === 'true' ? '*' : 'BAD'}{item.bifrost === 'true' ? '*' : 'BAD' }
    + +
    +
      +
    • + {renderPageNumbers} +
    • +
    +
    ) } let timer = null; + +const defaulColumns = { + nodes: true, + age: true, + action: true, + isp: true, + bond: true, + providers: true, + rewards: true, + apy: true, + slashes: true, + score: true, + version: true, + rpc: true, + } export default class extends Component { @@ -372,11 +485,12 @@ export default class extends Component { animateBlockCount: false, myFavNodes: [], searchTerm: '', + visibleColumns: defaulColumns, + nodesFilter: {}, + loading: true, }; } - - async componentWillMount() { const myFavNodes = getCookie('myFavNodes') @@ -391,6 +505,10 @@ export default class extends Component { async refreshData() { const data = await getData() + if (this.state.loading) { + this.setState({ loading: false }); + } + if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') { console.log('DEV ONLY: Refresh Data Results: ', data) } @@ -400,7 +518,6 @@ export default class extends Component { } - componentDidMount() { timer = setInterval(() => { @@ -530,6 +647,20 @@ Disabled }) } + + onColumnUpdate (config) { + this.setState({ visibleColumns: config }) + } + + onNodesFilter (key) { + this.setState(prevState => ({ + nodesFilter: { + ...prevState.nodesFilter, + [key]: !prevState.nodesFilter[key] + } + })); + } + /* Split the data into over 300ks and under 300ks With the over 300ks, take the top 3 if they exist and apply churn in action @@ -576,7 +707,6 @@ Worst Performer (Can't churn out if just churned in, one cycle grace period) } calcBadValidatorRedline(activeNodes){ - //Only get nodes with slashes greater than 100 const greater100Slashes = activeNodes.filter(item => item.slash_points > 100) //Add all the scores together for thes nodes @@ -645,11 +775,7 @@ We use string sort function if value is one of the arrays else do second sort nu } sortColour(item) { - if (item === this.state.sortBy) { - return this.state.sortDirection ==='desc' ? '#065900' : '#590000' - } else { - return null - } + return '#ffffff' } whichHeart(address){ @@ -659,48 +785,156 @@ We use string sort function if value is one of the arrays else do second sort nu searchBar() { return ( +
    this.setState({ searchTerm: event.target.value.trim()},()=>this.setData())} + prefix={} /> +
    ) } render() { -/* - if (this.state.data.length === 0) { - return
    - } -*/ + const { loading, data, nodesFilter, visibleColumns, activeNodes, standByNodes, whitelistedNodes } = this.state; - return ( + const noNodesFilter = (!nodesFilter.active && !nodesFilter.standby && !nodesFilter.orthers); + const showActive = (isEmpty(nodesFilter) || noNodesFilter || (nodesFilter.active)) + const showStandby = (isEmpty(nodesFilter) || noNodesFilter || (nodesFilter.standby)) + const showOthers = (isEmpty(nodesFilter) || noNodesFilter || (nodesFilter.orthers)) + + + return ( -
    Thornode Monitor
    +
    +
    + # + Thornode Monitor +
    +
    +
    this.onNodesFilter('active')}>
    +
    this.onNodesFilter('standby')}>
    +
    this.onNodesFilter('orthers')}>
    +
    + +
    - -
    - - + {loading && ( +
    + )} + + {(!loading) && ( +
    + + Dashboard + + +
    +
    + + +
    +
    + + {showActive && ( + <> +
    +
    + + + +
    + {this.searchBar()} + + +
    + + {activeNodes.length > 0 && ( + + )} + {activeNodes.length === 0 && ( +
    +
    No Active Data Available!
    +
    + )} +
    + + )} + + {showStandby && ( + <> +
    +
    + + + +
    + + {(!showActive) && ( + <> + {this.searchBar()} + + + )} +
    + + {standByNodes.length > 0 && ( + + )} + {standByNodes.length === 0 && ( +
    +
    No Standby Data Available!
    +
    + )} +
    + + )} + {showOthers && ( + <> +
    +
    + + + +
    + + {(!showActive && !showStandby) && ( + <> + {this.searchBar()} + + + )} +
    + + {whitelistedNodes.length > 0 && ( + + )} + {whitelistedNodes.length === 0 && ( +
    +
    No Other Data Available!
    +
    + )} + + )}
    - - {this.searchBar()} -

    Active

    - -
    -

    {'Standby'}

    - -
    -

    {'Other'}

    - + )} -
    Thornode Monitor - 2022
    +
    + # + # +
    + Built by: + # +
    +
    - - - - ); } -} +} \ No newline at end of file diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js new file mode 100644 index 0000000..94349f4 --- /dev/null +++ b/src/containers/A_monitor/otherpage.js @@ -0,0 +1,846 @@ +import React, { Component, useState } from 'react'; +import isEmpty from 'lodash/isEmpty'; +import Modals from '@iso/components/Feedback/Modal'; +import Popover from '@iso/components/uielements/popover'; +import { getData, setCookie, getCookie } from 'CommonFunctions' +import { ModalContent } from '../Feedback/Modal/Modal.styles'; +import { Layout, Button, Input, Modal, Switch, Breadcrumb } from 'antd'; +import "./styles.css"; +import { Link } from 'react-router-dom'; +import { PUBLIC_ROUTE } from '../../route.constants'; +import { SearchOutlined, LeftOutlined , RightOutlined } from '@ant-design/icons'; + +import heartBlank from '@iso/assets/images/heart-blank.png'; +import heartFull from '@iso/assets/images/heart-full.png'; + +import imageDO from '@iso/assets/images/do.png'; +import imageAWS from '@iso/assets/images/aws.png'; +import imageGCP from '@iso/assets/images/gcp.png'; +import imageAZURE from '@iso/assets/images/azure.png'; +import imageHETZNER from '@iso/assets/images/hetzner.png'; +import imageVULTR from '@iso/assets/images/vultr.png'; + +import binance from '@iso/assets/images/binance.png'; +import eth from '@iso/assets/images/eth.png'; +import bitcoin from '@iso/assets/images/bitcoin.png'; +import litecoin from '@iso/assets/images/litecoin.png'; +import bitcoincash from '@iso/assets/images/bitcoincash.png'; +import dogecoin from '@iso/assets/images/dogecoin.png'; +import gaia from '@iso/assets/images/atom.png'; +import thornode from '@iso/assets/images/thornode.svg'; + +import blockIcon from '@iso/assets/images/overview/block_icon.svg'; +import highTradingIcon from '@iso/assets/images/overview/24high_trading.svg'; +import lowTradingIcon from '@iso/assets/images/overview/24low_trading.svg'; +import bondIcon from '@iso/assets/images/overview/Bond_icon.svg'; +import churnsIcon from '@iso/assets/images/overview/churns_icon.svg'; +import marcketCapIcon from '@iso/assets/images/overview/marcket_Cap.svg'; +import mcapRankIcon from '@iso/assets/images/overview/mcap_rank.svg'; +import runeUsdtIcon from '@iso/assets/images/overview/rune_usdt.svg'; +import timeIcon from '@iso/assets/images/overview/time_icon.svg'; +import totalSupplyIcon from '@iso/assets/images/overview/total_supply.svg'; +import filterIcon from '@iso/assets/images/overview/filter.svg'; +import loadingIcon from '@iso/assets/images/overview/loading.png'; +import githubIcon from '@iso/assets/images/overview/github_link_icon.svg'; +import twitterIcon from '@iso/assets/images/overview/twitter_link_icon.svg'; +import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; + +import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; +import powerIcon from '@iso/assets/images/overview/power.svg'; +import activeIcon from '@iso/assets/images/overview/active_icon.svg'; + + +import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; + +const leaveIcon = + +const { Header, Footer, Content } = Layout; + +const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} +const tdStyle = {minWidth: 60, textAlign: 'right', fontSize: 14, padding: '10px 15px'} +const iconStyle = {minWidth: 25, padding: 5, paddingLeft: 10, paddingRight: 10} + + +async function copyToClipWithPopup(msg, ip) { + copyToClipboard(ip) + popUpModal(msg, ip) +} + +const copyToClipboard = str => { + if (navigator && navigator.clipboard && navigator.clipboard.writeText) + return navigator.clipboard.writeText(str); + return Promise.reject('The Clipboard API is not available.'); +}; + +function popUpModal(msg, ip) { + Modals.info({ + title:

    Success

    , + content: ( + +

    + {`${msg} `} {`${ip}`} +

    +
    + ), + onOk() {}, + okText: 'OK', + cancelText: 'Cancel', + className: 'feedback-modal' + }); +} + +const Icons = ({address, ip_address, addToFav, whichHeart}) => { + const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}` + const secondURL = `https://viewblock.io/thorchain/address/${address}` + return ( + + + + + + + + + + + + + + + + + + + + + + + + + copyToClipWithPopup('IP Copied to clipboard:', ip_address)}> + + + + + + + + #addToFav(address)} src={whichHeart(address)} style={{ cursor:'pointer', marginLeft: 5, marginTop: 2, width: 15, height: 15}}/> + +) +} + +const GlobalData = ({ globalData, animateBlockCount, state}) => { + + let timeToDisplay = ''; + let msgTitle = '' + if (globalData?.churnTry && globalData?.retiring === 'false') { + msgTitle = '(CHURN) RETRY IN' + timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m` + } else if (globalData?.retiring === 'true') { + msgTitle = '(CHURN) CURRENTLY CHURNING' + timeToDisplay = 'Churning' + } else { + msgTitle = '(CHURN) TIME UNTIL' + timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m` + } + + return ( + <> +
    + # +
    +
    CURRENT BLOCK
    +
    {parseInt(globalData.maxHeight).toLocaleString()}
    +
    +
    +
    + # +
    +
    {msgTitle}
    +
    {timeToDisplay}
    +
    +
    +
    + # +
    +
    TOTAL BONDED VALUE
    +
    ᚱ{state.activeNodes.length>0 ? parseInt((state.activeNodes.map(item => item.bond).reduce((prev, next) => prev + next))/100000000).toLocaleString() : '0'}
    +
    +
    +
    + # +
    +
    MARKET CAP
    +
    ${globalData?.coingecko?.market_cap?.toLocaleString()}
    +
    +
    +
    + # +
    +
    24 HR VOLUME
    +
    ${globalData?.coingecko?.total_volume?.toLocaleString()}
    +
    +
    + + ) +} + +const CoinGeckoData = ({ globalData }) => { + return ( + <> +
    + # +
    +
    PRICE
    +
    ${globalData?.coingecko?.current_price?.toLocaleString()}
    +
    +
    +
    + # +
    +
    24 HR HIGH
    +
    ${globalData?.coingecko?.high_24h}
    +
    +
    +
    + # +
    +
    24 HR LOW
    +
    ${globalData?.coingecko?.low_24h}
    +
    +
    +
    + # +
    +
    MARKET CAP RANK
    +
    {globalData?.coingecko?.market_cap_rank}
    +
    +
    +
    + # +
    +
    TOTAL SUPPLY
    +
    ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()}
    +
    +
    + + ) +} + + +const ReturnIspImage = ({isp}) => { + + const style = {width: 25, height: 25} + + if (isp ==='Amazon.com, Inc.' || isp === 'Amazon Technologies Inc.' || isp === 'Amazon.com'){ + return # + } + if (isp ==='DigitalOcean, LLC' || isp==='DigitalOcean'){ + return # + } + if (isp ==='Google LLC'){ + return # + } + + if (isp ==='Microsoft Corporation'){ + return # + } + + if (isp ==='Hetzner Online GmbH'){ + return # + } + + if (isp ==='The Constant Company' || isp === 'The Constant Company, LLC'){ + return # + } + + + return '-' +} + +const ChainTD = ({chain, obchains, maxChainHeights}) => { + const delta = obchains[chain]-maxChainHeights[chain] + return ( + {delta===0 ? 'OK' : delta.toString()} + ) +} + +const BondProviderPopOver = ({data}) => { + const totalBond = data.map(item=>parseInt(item.bond)).reduce((a, b) => a + b, 0) + + const d = data.map((item,index) => { + return ( +
    + {item.bond_address.substring(item.bond_address.length-4, item.bond_address.length)} + {((item.bond/totalBond)*100).toFixed(2)}% + ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} +
    + ) + }) + return d +} + +const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { + + + const [currentPage, setCurrentPage] = useState(1); + const itemsPerPage = 20; + + const totalPages = Math.ceil(nodeData.length / itemsPerPage); + const pageNumbers = []; + + for (let i = 1; i <= totalPages; i++) { + pageNumbers.push(i); + } + + const handleClick = (event) => { + setCurrentPage(Number(event.target.id)); + }; + + const handleNext = () => { + setCurrentPage((prevPage) => (prevPage === totalPages ? prevPage : prevPage + 1)); + }; + + const handlePrev = () => { + setCurrentPage((prevPage) => (prevPage === 1 ? prevPage : prevPage - 1)); + }; + + const renderPageNumbers = pageNumbers.map((number) => { + return ( +
  • + {number} +
  • + ); + }); + + const indexOfLastItem = currentPage * itemsPerPage; + const indexOfFirstItem = indexOfLastItem - itemsPerPage; + const currentItems = nodeData.slice(indexOfFirstItem, indexOfLastItem); + + const getHeaderClassName = (key) => { + return visibleColumns && visibleColumns[key] ? 'tableHeader' : 'tableHeader hidden' + }; + + const getCellClassName = (key) => { + return visibleColumns && visibleColumns[key] ? '' : 'hidden' + }; + + return ( +
    + + + + + + + + + + + + + + + + + + {chains && + <> + + + + + + + + + } + + + + {currentItems.map((item, index) => ( + + + + + + + + + + + + + + + + {chains && + <> + + + + + + + + + } + + ))} + +
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionRPC#######
    + + copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> + {`${item.node_address.substring(0, Math.min(9, item.node_address.length))}...`} + + + + {item.age.toFixed(2)}{item.action}{item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } + title={'Bond Providers'} + trigger="hover" + >{item.bond_providers.providers.length} + + ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}
    + +
    +
      +
    • + {renderPageNumbers} +
    • +
    +
    +
    + ) +} + +let timer = null; + +const defaulColumns = { + nodes: true, + age: true, + action: true, + isp: true, + bond: true, + providers: true, + rewards: true, + apy: true, + slashes: true, + score: true, + version: true, + rpc: true, + } +export default class extends Component { + constructor(props) { + super(props); + this.state = { + data: [], + globalData: [], + sortBy: 'bond', + sortDirection: 'desc', + activeNodes: [], + standByNodes: [], + whitelistedNodes: [], + animateBlockCount: false, + myFavNodes: [], + searchTerm: '', + visibleColumns: defaulColumns, + nodesFilter: {}, + loading: true, + }; + } + + async componentWillMount() { + + const myFavNodes = getCookie('myFavNodes') + + const tmp = myFavNodes.length>0 ? JSON.parse(myFavNodes) : [] + + this.setState({ myFavNodes: tmp }) + + this.refreshData() + } + + async refreshData() { + const data = await getData() + + if (this.state.loading) { + this.setState({ loading: false }); + } + + if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') { + console.log('DEV ONLY: Refresh Data Results: ', data) + } + + this.setState({data: data.data, globalData: data.globalData, maxChainHeights: data.maxChainHeights, animateBlockCount: false}, ()=>this.setData()) //Change animateBlockCount to true here for animation + } + + componentDidMount() { + + timer = setInterval(() => { + this.setState({animateBlockCount: false}, ()=>this.refreshData()) + //this.refreshData() + }, 6000) + } + + componentWillUnmount() { + clearInterval(timer); + } + + addToFav(address) { + + //Below works to add, but need to check if already exists, and if so remove + + const myFavNodes = getCookie('myFavNodes')//JSON.parse( + + if(myFavNodes.length===0) { + //in here no current fav nodes + const singleAddress = JSON.stringify([address]) + setCookie('myFavNodes', singleAddress) + this.setState({myFavNodes: singleAddress}, ()=>this.setData()) + + } else { + //If we already have some fav nodes + const newFaveNodes = JSON.parse(myFavNodes) + + //Need to check if already exists + if (newFaveNodes.indexOf(address) > -1) { + //In the array! + + const newArrayWithRemove = newFaveNodes.filter(item => item!==address) + + const newFaveNodesNew = JSON.stringify(newArrayWithRemove) + this.setState({myFavNodes: newArrayWithRemove}, ()=>this.setData()) + setCookie('myFavNodes', newFaveNodesNew) + + } else { + //Not in the array + newFaveNodes[newFaveNodes.length] = address + + const newFaveNodesNew = JSON.stringify(newFaveNodes) + + this.setState({myFavNodes: newFaveNodes}, ()=>this.setData()) + setCookie('myFavNodes', newFaveNodesNew) + + } + + } + + } + + returnSearchedData(data) { + if (this.state.searchTerm === '') { + return data + } else { + const filteredNodes = data.filter(item => item.node_address.includes(this.state.searchTerm)) + return filteredNodes + } + } + + setData() { + //Grab our state so we can mutate it + let myData = JSON.parse(JSON.stringify(this.state.data)) + + + + + //Add faves to the data, then we can sort by then below + const newItems = myData.map(item => { + if (this.state.myFavNodes.includes(item.node_address)) { + item.fave = 1 + } else { + item.fave = 0 + } + return item + }); + +/* +Whitelisted +Active +Standby +Ready +Disabled +*/ + + //Filter for our three tables + let activeNodes = newItems.filter(item => item.status ==='Active') + let standbyNodes = newItems.filter(item => (item.status ==='Standby' || item.status ==='Ready') && item.version === this.state.globalData.maxVersion) + + //Create an array of all nodes that are active and standby + const active_standy_nodes = [ ...activeNodes.map(item => {return item.node_address}), ...standbyNodes.map(item => {return item.node_address})] + //White listed are all other nodes which are not active or on standby + //White listed is really just "Other" + let whitelisted = newItems.filter(item => !active_standy_nodes.includes(item.node_address)) + + //let whitelisted = newItems.filter(item => !(item.status ==='Active' || item.status ==='Standby' || item.status ==='Ready') /*&& item.version !== this.state.globalData.maxVersion*/) + + activeNodes = this.findChurnOuts(activeNodes) //Add in the actions for churning + standbyNodes = this.findChurnIns(standbyNodes) //Add in the actions for nodes churning in + + //Filter here if any searchTerm from the search bar + //Need to do after adding the actions + activeNodes = this.returnSearchedData(activeNodes) + standbyNodes = this.returnSearchedData(standbyNodes) + whitelisted = this.returnSearchedData(whitelisted) + + //Sort and add our favs to the top + let activeNodesSorted = this.sortData(activeNodes) + const favActiveNodesSorted = activeNodesSorted.filter(item => item.fave === 1) //Get our favourites + activeNodesSorted = activeNodesSorted.filter(item => item.fave === 0)//Get our non favourites + + activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted] //Join faves at top with non favourites + + + const standBySorted = this.sortData(standbyNodes) + const whitelistedSorted = this.sortData(whitelisted) + + this.setState({ + activeNodes: activeNodesSorted, + standByNodes: standBySorted, + whitelistedNodes: whitelistedSorted //This is really just other + }) + } + + + onColumnUpdate (config) { + this.setState({ visibleColumns: config }) + } + + onNodesFilter (key) { + this.setState(prevState => ({ + nodesFilter: { + ...prevState.nodesFilter, + [key]: !prevState.nodesFilter[key] + } + })); + } + +/* +Split the data into over 300ks and under 300ks +With the over 300ks, take the top 3 if they exist and apply churn in action +If 4 nodes churn in instead of 3 each time, add another row +*/ + findChurnIns(standbyNodes) { + if (standbyNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + + const over300 = standbyNodes.filter(item => item.bond >= 30000000000000) + const over300Sorted = this.sortData(over300, 'bond', 'desc') + + if (over300Sorted.length > 0){ + over300Sorted[Math.min(0, over300Sorted.length-1)].action = 'Churn In' + over300Sorted[Math.min(1, over300Sorted.length-1)].action = 'Churn In' + over300Sorted[Math.min(2, over300Sorted.length-1)].action = 'Churn In' + over300Sorted[Math.min(3, over300Sorted.length-1)].action = 'Churn In' + over300Sorted[Math.min(4, over300Sorted.length-1)].action = 'Churn In' + } + const under300 = standbyNodes.filter(item => item.bond < 30000000000000) + + return [...over300Sorted, ...under300] + } + +/* +Lowest Bond +Oldest Node +Worst Performer (Can't churn out if just churned in, one cycle grace period) +*/ + findChurnOuts(activeNodes) { + if (activeNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + + let activeNodesSorted = this.sortData(activeNodes, 'age', 'desc') + activeNodesSorted[0].action = 'Oldest' + + activeNodesSorted = this.sortData(activeNodes, 'bond', 'asc') + activeNodesSorted[0].action = 'Smallest Bond' + + activeNodesSorted = this.sortData(activeNodes, 'score', 'asc', true) + //we set the 'Worst Performing' tag in the sortData function + + this.calcBadValidatorRedline(activeNodes) + + return activeNodesSorted + } + + calcBadValidatorRedline(activeNodes){ + //Only get nodes with slashes greater than 100 + const greater100Slashes = activeNodes.filter(item => item.slash_points > 100) + //Add all the scores together for thes nodes + const sum = greater100Slashes.reduce((accumulator, object) => { + return accumulator + parseFloat(object.score); + }, 0); + //Find the average + const averageScore = sum/(greater100Slashes.length+1) + + const validatorLine = averageScore/this.state.globalData.BadValidatorRedline + + activeNodes.map(item => { + if(item.score < validatorLine) { + item.action = 'Bad Redline' + } + return 0 + }) + + } + +/* +Sort by either string or number +We use string sort function if value is one of the arrays else do second sort number +*/ + sortData(data, value = null, direction = null, worst_perform = false) { + const toSortBy = value === null ? this.state.sortBy : value + let newData = [] + + if (['node', 'isp', 'location', 'version', 'action', 'node_address'].includes(toSortBy)){ //This sort function for strings + newData = data.sort((a, b) => a[toSortBy].localeCompare(b[toSortBy])); + + } else if (toSortBy === 'bond_providers') {//This is for bond provider sort as we need to go another layer deep in the object + newData = data.sort((a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length); + + } else if (worst_perform === true) { //This is for when we are sorting for action of worst performance as we want to exclude any with age under 3 days + const ageCutOffDays = 3 + const a = data.filter(item => parseFloat(item.age) > ageCutOffDays) + const b = data.filter(item => parseFloat(item.age) <= ageCutOffDays) + const aSorted = a.sort((a, b) => (b[toSortBy] - a[toSortBy]) ); + + aSorted[aSorted.length-1].action = 'Worst Performing' + newData = [...aSorted, ...b] + + } else { //This sort function for numbers + //When sorting, if values are the same, sort by node_address + newData = data.sort( + function(a, b) { + if (a[toSortBy] === b[toSortBy]) { + return a['node_address'].localeCompare(b['node_address']); + } + return a[toSortBy] > b[toSortBy] ? 1 : -1; + }); + } + //If we pass it a direction, we set it here, if not we take it from the state + const toDirection = direction === null ? this.state.sortDirection : direction + if (toDirection === 'desc') { + newData.reverse() + } + + return newData + } + + clickSortHeader(item){ + const direction = this.state.sortBy !== item ? 'desc' : this.state.sortDirection === 'desc' ? 'asc' : 'desc'; + this.setState({sortBy: item, sortDirection: direction}, ()=> this.setData()) + } + + sortColour(item) { + return '#ffffff' + } + + whichHeart(address){ + return this.state.myFavNodes.includes(address) ? heartFull : heartBlank + } + + + searchBar() { + return ( +
    + this.setState({ searchTerm: event.target.value.trim()},()=>this.setData())} + prefix={} + /> +
    + ) + } + + render() { + + const { loading, nodesFilter, visibleColumns, whitelistedNodes } = this.state; + + return ( + +
    +
    + # + Thornode Monitor +
    +
    +
    this.onNodesFilter('active')}>
    +
    this.onNodesFilter('standby')}>
    +
    this.onNodesFilter('orthers')}>
    +
    + +
    + + + {loading && ( +
    + )} + + {!(loading) && ( +
    + + }> + Dashboard + Standby Nodes + + +
    +
    + + +
    +
    + + <> +
    +
    + +
    + {this.searchBar()} + + +
    + + {whitelistedNodes.length > 0 && ( + + )} + {whitelistedNodes.length === 0 && ( +
    +
    No Active Data Available!
    +
    + )} + +
    + )} +
    +
    + # + # +
    + Built by: + # +
    +
    +
    + ); + } +} \ No newline at end of file diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js new file mode 100644 index 0000000..0b4d498 --- /dev/null +++ b/src/containers/A_monitor/standbypage.js @@ -0,0 +1,829 @@ +import React, { Component, useState } from 'react'; +import Modals from '@iso/components/Feedback/Modal'; +import Popover from '@iso/components/uielements/popover'; +import { getData, setCookie, getCookie } from 'CommonFunctions' +import { ModalContent } from '../Feedback/Modal/Modal.styles'; +import { Layout, Button, Input, Breadcrumb } from 'antd'; +import "./styles.css"; +import { SearchOutlined, LeftOutlined , RightOutlined } from '@ant-design/icons'; +import heartBlank from '@iso/assets/images/heart-blank.png'; +import heartFull from '@iso/assets/images/heart-full.png'; +import imageDO from '@iso/assets/images/do.png'; +import imageAWS from '@iso/assets/images/aws.png'; +import imageGCP from '@iso/assets/images/gcp.png'; +import imageAZURE from '@iso/assets/images/azure.png'; +import imageHETZNER from '@iso/assets/images/hetzner.png'; +import imageVULTR from '@iso/assets/images/vultr.png'; +import binance from '@iso/assets/images/binance.png'; +import eth from '@iso/assets/images/eth.png'; +import bitcoin from '@iso/assets/images/bitcoin.png'; +import litecoin from '@iso/assets/images/litecoin.png'; +import bitcoincash from '@iso/assets/images/bitcoincash.png'; +import dogecoin from '@iso/assets/images/dogecoin.png'; +import gaia from '@iso/assets/images/atom.png'; +import thornode from '@iso/assets/images/thornode.svg'; +import blockIcon from '@iso/assets/images/overview/block_icon.svg'; +import highTradingIcon from '@iso/assets/images/overview/24high_trading.svg'; +import lowTradingIcon from '@iso/assets/images/overview/24low_trading.svg'; +import bondIcon from '@iso/assets/images/overview/Bond_icon.svg'; +import churnsIcon from '@iso/assets/images/overview/churns_icon.svg'; +import marcketCapIcon from '@iso/assets/images/overview/marcket_Cap.svg'; +import mcapRankIcon from '@iso/assets/images/overview/mcap_rank.svg'; +import runeUsdtIcon from '@iso/assets/images/overview/rune_usdt.svg'; +import timeIcon from '@iso/assets/images/overview/time_icon.svg'; +import totalSupplyIcon from '@iso/assets/images/overview/total_supply.svg'; +import loadingIcon from '@iso/assets/images/overview/loading.png'; +import githubIcon from '@iso/assets/images/overview/github_link_icon.svg'; +import twitterIcon from '@iso/assets/images/overview/twitter_link_icon.svg'; +import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; +import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; +import powerIcon from '@iso/assets/images/overview/power.svg'; +import activeIcon from '@iso/assets/images/overview/active_icon.svg'; +import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; + + +const { Header, Footer, Content } = Layout; + +const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} +const tdStyle = {minWidth: 60, textAlign: 'right', fontSize: 14, padding: '10px 15px'} +const iconStyle = {minWidth: 25, padding: 5, paddingLeft: 10, paddingRight: 10, padding: '10px 15px'} + + +async function copyToClipWithPopup(msg, ip) { + copyToClipboard(ip) + popUpModal(msg, ip) +} + +const copyToClipboard = str => { + if (navigator && navigator.clipboard && navigator.clipboard.writeText) + return navigator.clipboard.writeText(str); + return Promise.reject('The Clipboard API is not available.'); +}; + +function popUpModal(msg, ip) { + Modals.info({ + title:

    Success

    , + content: ( + +

    + {`${msg} `} {`${ip}`} +

    +
    + ), + onOk() {}, + okText: 'OK', + cancelText: 'Cancel', + className: 'feedback-modal' + }); +} + +const Icons = ({address, ip_address, addToFav, whichHeart}) => { + const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}` + const secondURL = `https://viewblock.io/thorchain/address/${address}` + return ( + + + + + + + + + + + + + + + + + + + + + + + copyToClipWithPopup('IP Copied to clipboard:', ip_address)}> + + + + + + + + #addToFav(address)} src={whichHeart(address)} style={{ cursor:'pointer', marginLeft: 5, marginTop: 2, width: 15, height: 15}}/> + +) +} + +const GlobalData = ({ globalData, animateBlockCount, state}) => { + + let timeToDisplay = ''; + let msgTitle = '' + if (globalData?.churnTry && globalData?.retiring === 'false') { + msgTitle = '(CHURN) RETRY IN' + timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m` + } else if (globalData?.retiring === 'true') { + msgTitle = '(CHURN) CURRENTLY CHURNING' + timeToDisplay = 'Churning' + } else { + msgTitle = '(CHURN) TIME UNTIL' + timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m` + } + + return ( + <> +
    + # +
    +
    CURRENT BLOCK
    +
    {parseInt(globalData.maxHeight).toLocaleString()}
    +
    +
    +
    + # +
    +
    {msgTitle}
    +
    {timeToDisplay}
    +
    +
    +
    + # +
    +
    TOTAL BONDED VALUE
    +
    ᚱ{state.activeNodes.length>0 ? parseInt((state.activeNodes.map(item => item.bond).reduce((prev, next) => prev + next))/100000000).toLocaleString() : '0'}
    +
    +
    +
    + # +
    +
    MARKET CAP
    +
    ${globalData?.coingecko?.market_cap?.toLocaleString()}
    +
    +
    +
    + # +
    +
    24 HR VOLUME
    +
    ${globalData?.coingecko?.total_volume?.toLocaleString()}
    +
    +
    + + ) +} + +const CoinGeckoData = ({ globalData }) => { + return ( + <> +
    + # +
    +
    PRICE
    +
    ${globalData?.coingecko?.current_price?.toLocaleString()}
    +
    +
    +
    + # +
    +
    24 HR HIGH
    +
    ${globalData?.coingecko?.high_24h}
    +
    +
    +
    + # +
    +
    24 HR LOW
    +
    ${globalData?.coingecko?.low_24h}
    +
    +
    +
    + # +
    +
    MARKET CAP RANK
    +
    {globalData?.coingecko?.market_cap_rank}
    +
    +
    +
    + # +
    +
    TOTAL SUPPLY
    +
    ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()}
    +
    +
    + + ) +} + + +const ReturnIspImage = ({isp}) => { + + const style = {width: 25, height: 25} + + if (isp ==='Amazon.com, Inc.' || isp === 'Amazon Technologies Inc.' || isp === 'Amazon.com'){ + return # + } + if (isp ==='DigitalOcean, LLC' || isp==='DigitalOcean'){ + return # + } + if (isp ==='Google LLC'){ + return # + } + + if (isp ==='Microsoft Corporation'){ + return # + } + + if (isp ==='Hetzner Online GmbH'){ + return # + } + + if (isp ==='The Constant Company' || isp === 'The Constant Company, LLC'){ + return # + } + + + return '-' +} + +const ChainTD = ({chain, obchains, maxChainHeights}) => { + const delta = obchains[chain]-maxChainHeights[chain] + return ( + {delta===0 ? 'OK' : delta.toString()} + ) +} + +const BondProviderPopOver = ({data}) => { + const totalBond = data.map(item=>parseInt(item.bond)).reduce((a, b) => a + b, 0) + + const d = data.map((item,index) => { + return ( +
    + {item.bond_address.substring(item.bond_address.length-4, item.bond_address.length)} + {((item.bond/totalBond)*100).toFixed(2)}% + ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} +
    + ) + }) + return d +} + +const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { + + + const [currentPage, setCurrentPage] = useState(1); + const itemsPerPage = 20; + + const totalPages = Math.ceil(nodeData.length / itemsPerPage); + const pageNumbers = []; + + for (let i = 1; i <= totalPages; i++) { + pageNumbers.push(i); + } + + const handleClick = (event) => { + setCurrentPage(Number(event.target.id)); + }; + + const handleNext = () => { + setCurrentPage((prevPage) => (prevPage === totalPages ? prevPage : prevPage + 1)); + }; + + const handlePrev = () => { + setCurrentPage((prevPage) => (prevPage === 1 ? prevPage : prevPage - 1)); + }; + + const renderPageNumbers = pageNumbers.map((number) => { + return ( +
  • + {number} +
  • + ); + }); + + const indexOfLastItem = currentPage * itemsPerPage; + const indexOfFirstItem = indexOfLastItem - itemsPerPage; + const currentItems = nodeData.slice(indexOfFirstItem, indexOfLastItem); + + const getHeaderClassName = (key) => { + return visibleColumns && visibleColumns[key] ? 'tableHeader' : 'tableHeader hidden' + }; + + const getCellClassName = (key) => { + return visibleColumns && visibleColumns[key] ? '' : 'hidden' + }; + + return ( +
    + + + + + + + + + + + + + + + + + + {chains && + <> + + + + + + + + + } + + + + {currentItems.map((item, index) => ( + + + + + + + + + + + + + + + + {chains && + <> + + + + + + + + + } + + ))} + +
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionRPC#######
    + + copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> + {`${item.node_address.substring(0, Math.min(9, item.node_address.length))}...`} + + + + {item.age.toFixed(2)}{item.action}{item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } + title={'Bond Providers'} + trigger="hover" + >{item.bond_providers.providers.length} + + ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}
    + +
    +
      +
    • + {renderPageNumbers} +
    • +
    +
    +
    + ) +} + +let timer = null; + +const defaulColumns = { + nodes: true, + age: true, + action: true, + isp: true, + bond: true, + providers: true, + rewards: true, + apy: true, + slashes: true, + score: true, + version: true, + rpc: true, + } +export default class extends Component { + constructor(props) { + super(props); + this.state = { + data: [], + globalData: [], + sortBy: 'bond', + sortDirection: 'desc', + activeNodes: [], + standByNodes: [], + whitelistedNodes: [], + animateBlockCount: false, + myFavNodes: [], + searchTerm: '', + visibleColumns: defaulColumns, + nodesFilter: {}, + loading: true, + }; + } + + async componentWillMount() { + + const myFavNodes = getCookie('myFavNodes') + + const tmp = myFavNodes.length>0 ? JSON.parse(myFavNodes) : [] + + this.setState({ myFavNodes: tmp }) + + this.refreshData() + } + + async refreshData() { + const data = await getData() + + if (this.state.loading) { + this.setState({ loading: false }); + } + + if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') { + console.log('DEV ONLY: Refresh Data Results: ', data) + } + + this.setState({data: data.data, globalData: data.globalData, maxChainHeights: data.maxChainHeights, animateBlockCount: false}, ()=>this.setData()) //Change animateBlockCount to true here for animation + } + + componentDidMount() { + + timer = setInterval(() => { + this.setState({animateBlockCount: false}, ()=>this.refreshData()) + //this.refreshData() + }, 6000) + } + + componentWillUnmount() { + clearInterval(timer); + } + + addToFav(address) { + const myFavNodes = getCookie('myFavNodes')//JSON.parse( + + if(myFavNodes.length===0) { + //in here no current fav nodes + const singleAddress = JSON.stringify([address]) + setCookie('myFavNodes', singleAddress) + this.setState({myFavNodes: singleAddress}, ()=>this.setData()) + + } else { + //If we already have some fav nodes + const newFaveNodes = JSON.parse(myFavNodes) + + //Need to check if already exists + if (newFaveNodes.indexOf(address) > -1) { + //In the array! + + const newArrayWithRemove = newFaveNodes.filter(item => item!==address) + + const newFaveNodesNew = JSON.stringify(newArrayWithRemove) + this.setState({myFavNodes: newArrayWithRemove}, ()=>this.setData()) + setCookie('myFavNodes', newFaveNodesNew) + + } else { + //Not in the array + newFaveNodes[newFaveNodes.length] = address + + const newFaveNodesNew = JSON.stringify(newFaveNodes) + + this.setState({myFavNodes: newFaveNodes}, ()=>this.setData()) + setCookie('myFavNodes', newFaveNodesNew) + + } + + } + + } + + returnSearchedData(data) { + if (this.state.searchTerm === '') { + return data + } else { + const filteredNodes = data.filter(item => item.node_address.includes(this.state.searchTerm)) + return filteredNodes + } + } + + setData() { + //Grab our state so we can mutate it + let myData = JSON.parse(JSON.stringify(this.state.data)) + + + + + //Add faves to the data, then we can sort by then below + const newItems = myData.map(item => { + if (this.state.myFavNodes.includes(item.node_address)) { + item.fave = 1 + } else { + item.fave = 0 + } + return item + }); + +/* +Whitelisted +Active +Standby +Ready +Disabled +*/ + + //Filter for our three tables + let activeNodes = newItems.filter(item => item.status ==='Active') + let standbyNodes = newItems.filter(item => (item.status ==='Standby' || item.status ==='Ready') && item.version === this.state.globalData.maxVersion) + + //Create an array of all nodes that are active and standby + const active_standy_nodes = [ ...activeNodes.map(item => {return item.node_address}), ...standbyNodes.map(item => {return item.node_address})] + //White listed are all other nodes which are not active or on standby + //White listed is really just "Other" + let whitelisted = newItems.filter(item => !active_standy_nodes.includes(item.node_address)) + + //let whitelisted = newItems.filter(item => !(item.status ==='Active' || item.status ==='Standby' || item.status ==='Ready') /*&& item.version !== this.state.globalData.maxVersion*/) + + activeNodes = this.findChurnOuts(activeNodes) //Add in the actions for churning + standbyNodes = this.findChurnIns(standbyNodes) //Add in the actions for nodes churning in + + //Filter here if any searchTerm from the search bar + //Need to do after adding the actions + activeNodes = this.returnSearchedData(activeNodes) + standbyNodes = this.returnSearchedData(standbyNodes) + whitelisted = this.returnSearchedData(whitelisted) + + //Sort and add our favs to the top + let activeNodesSorted = this.sortData(activeNodes) + const favActiveNodesSorted = activeNodesSorted.filter(item => item.fave === 1) //Get our favourites + activeNodesSorted = activeNodesSorted.filter(item => item.fave === 0)//Get our non favourites + + activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted] //Join faves at top with non favourites + + + const standBySorted = this.sortData(standbyNodes) + const whitelistedSorted = this.sortData(whitelisted) + + this.setState({ + activeNodes: activeNodesSorted, + standByNodes: standBySorted, + whitelistedNodes: whitelistedSorted //This is really just other + }) + } + + + onColumnUpdate (config) { + this.setState({ visibleColumns: config }) + } + + onNodesFilter (key) { + this.setState(prevState => ({ + nodesFilter: { + ...prevState.nodesFilter, + [key]: !prevState.nodesFilter[key] + } + })); + } + +/* +Split the data into over 300ks and under 300ks +With the over 300ks, take the top 3 if they exist and apply churn in action +If 4 nodes churn in instead of 3 each time, add another row +*/ + findChurnIns(standbyNodes) { + if (standbyNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + + const over300 = standbyNodes.filter(item => item.bond >= 30000000000000) + const over300Sorted = this.sortData(over300, 'bond', 'desc') + + if (over300Sorted.length > 0){ + over300Sorted[Math.min(0, over300Sorted.length-1)].action = 'Churn In' + over300Sorted[Math.min(1, over300Sorted.length-1)].action = 'Churn In' + over300Sorted[Math.min(2, over300Sorted.length-1)].action = 'Churn In' + over300Sorted[Math.min(3, over300Sorted.length-1)].action = 'Churn In' + over300Sorted[Math.min(4, over300Sorted.length-1)].action = 'Churn In' + } + const under300 = standbyNodes.filter(item => item.bond < 30000000000000) + + return [...over300Sorted, ...under300] + } + +/* +Lowest Bond +Oldest Node +Worst Performer (Can't churn out if just churned in, one cycle grace period) +*/ + findChurnOuts(activeNodes) { + if (activeNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + + let activeNodesSorted = this.sortData(activeNodes, 'age', 'desc') + activeNodesSorted[0].action = 'Oldest' + + activeNodesSorted = this.sortData(activeNodes, 'bond', 'asc') + activeNodesSorted[0].action = 'Smallest Bond' + + activeNodesSorted = this.sortData(activeNodes, 'score', 'asc', true) + //we set the 'Worst Performing' tag in the sortData function + + this.calcBadValidatorRedline(activeNodes) + + return activeNodesSorted + } + + calcBadValidatorRedline(activeNodes){ + //Only get nodes with slashes greater than 100 + const greater100Slashes = activeNodes.filter(item => item.slash_points > 100) + //Add all the scores together for thes nodes + const sum = greater100Slashes.reduce((accumulator, object) => { + return accumulator + parseFloat(object.score); + }, 0); + //Find the average + const averageScore = sum/(greater100Slashes.length+1) + + const validatorLine = averageScore/this.state.globalData.BadValidatorRedline + + activeNodes.map(item => { + if(item.score < validatorLine) { + item.action = 'Bad Redline' + } + return 0 + }) + + } + +/* +Sort by either string or number +We use string sort function if value is one of the arrays else do second sort number +*/ + sortData(data, value = null, direction = null, worst_perform = false) { + const toSortBy = value === null ? this.state.sortBy : value + let newData = [] + + if (['node', 'isp', 'location', 'version', 'action', 'node_address'].includes(toSortBy)){ //This sort function for strings + newData = data.sort((a, b) => a[toSortBy].localeCompare(b[toSortBy])); + + } else if (toSortBy === 'bond_providers') {//This is for bond provider sort as we need to go another layer deep in the object + newData = data.sort((a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length); + + } else if (worst_perform === true) { //This is for when we are sorting for action of worst performance as we want to exclude any with age under 3 days + const ageCutOffDays = 3 + const a = data.filter(item => parseFloat(item.age) > ageCutOffDays) + const b = data.filter(item => parseFloat(item.age) <= ageCutOffDays) + const aSorted = a.sort((a, b) => (b[toSortBy] - a[toSortBy]) ); + + aSorted[aSorted.length-1].action = 'Worst Performing' + newData = [...aSorted, ...b] + + } else { //This sort function for numbers + //When sorting, if values are the same, sort by node_address + newData = data.sort( + function(a, b) { + if (a[toSortBy] === b[toSortBy]) { + return a['node_address'].localeCompare(b['node_address']); + } + return a[toSortBy] > b[toSortBy] ? 1 : -1; + }); + } + //If we pass it a direction, we set it here, if not we take it from the state + const toDirection = direction === null ? this.state.sortDirection : direction + if (toDirection === 'desc') { + newData.reverse() + } + + return newData + } + + clickSortHeader(item){ + const direction = this.state.sortBy !== item ? 'desc' : this.state.sortDirection === 'desc' ? 'asc' : 'desc'; + this.setState({sortBy: item, sortDirection: direction}, ()=> this.setData()) + } + + sortColour(item) { + return '#ffffff' + } + + whichHeart(address){ + return this.state.myFavNodes.includes(address) ? heartFull : heartBlank + } + + + searchBar() { + return ( +
    + this.setState({ searchTerm: event.target.value.trim()},()=>this.setData())} + prefix={} + /> +
    + ) + } + + render() { + + const { loading, nodesFilter, visibleColumns, standByNodes } = this.state; + + return ( + +
    +
    + # + Thornode Monitor +
    +
    +
    this.onNodesFilter('active')}>
    +
    this.onNodesFilter('standby')}>
    +
    this.onNodesFilter('orthers')}>
    +
    + +
    + + + {loading && ( +
    + )} + + {!(loading) && ( +
    + + }> + Dashboard + Standby Nodes + + +
    +
    + + +
    +
    + + <> +
    +
    + +
    + {this.searchBar()} + + +
    + + {standByNodes.length > 0 && ( + + )} + {standByNodes.length === 0 && ( +
    +
    No Active Data Available!
    +
    + )} + +
    + )} +
    +
    + # + # +
    + Built by: + # +
    +
    +
    + ); + } +} \ No newline at end of file diff --git a/src/containers/A_monitor/styles.css b/src/containers/A_monitor/styles.css index c185533..ad06245 100644 --- a/src/containers/A_monitor/styles.css +++ b/src/containers/A_monitor/styles.css @@ -1,10 +1,21 @@ + +#root { + height: 100%; +} +.ant-layout { + min-height: 100%; + min-width: 1680px; +} body { font-family: monospace!important; font-weight: 200; } -svg:hover { - fill: #34c9eb; +.icons-wrapper svg { + color: #7E7E7E; +} +.icons-wrapper svg:hover { + color: #1C39BB; } td { @@ -27,9 +38,490 @@ td { } .nodeaddress:hover { - color: #34c9eb + color: #1C39BB } .tableHeader:hover { color: #004d59 } + +.overview-list-wrapper { + border-bottom: 1px solid #1C39BB; + padding-bottom: 28px; +} +.overview-list { + column-count: 5; + background: linear-gradient(269.82deg, #FFFFFF -20.26%, #FFFFFF 99.82%); + opacity: 0.8; + border-radius: 10px; + padding: 36px 40px 0; + filter: drop-shadow(0px 4px 10px rgba(0, 0, 0, 0.1)); + max-width: 1180px; + margin: auto; +} + +.overview-item { + display: flex; + align-items: center; + margin-bottom: 36px; +} + +.overview-item__value { + padding-left: 22px; +} + +.overview-item__value-title { + font-weight: 600; + font-size: 12px; + line-height: 15px; + letter-spacing: -0.015em; + color: #182233; +} + +.overview-item__value-value { + font-style: normal; + font-weight: 600; + font-size: 13px; + line-height: 16px; + letter-spacing: -0.015em; + color: #1B34A0; +} + +iframe { + display: none; +} + +.cta-wrapper { + display: flex; + justify-content: space-between; + align-items: center; + margin: 37px 0 16px; +} + +.cta-wrapper .cta-link{ + flex: 1; +} + +.hidden { + display: none; +} + +.paging-wrapper { + padding: 25px 0; + color: #9CA3AF; +} + +.page-numbers { + display: flex; + justify-content: center; +} +.page-numbers li { + border: 1.5px solid #9CA3AF; + cursor: pointer; + font-size: 14px; + padding: 3px 6px; + display: flex; + align-items: center; + justify-content: center; + font-weight: bold; +} +.page-numbers li.paging-item { + margin-right: 15px; + line-height: 1; +} + +.page-numbers li.paging-item:hover { + color: #182233; +} + +.page-numbers li.active { + border: 1.5px solid #1C39BB; + color: #1C39BB; +} + +.page-numbers .nav-button { + border: none; + cursor: pointer; +} + +.nav-button--prev { + margin-right: 20px; +} +.nav-button--next { + margin-left: 5px; +} + +.nav-button.disabled { + pointer-events: none; +} + +.ant-layout-content { + background-image: url('./../../assets/images/overview/liquify_bg.png'), url('./../../assets/images/overview/hex_map_bg.png'); + background-repeat: no-repeat; + background-position: top 160px center, top calc(960px) center; + display: flex; + flex-direction: column; + padding: 17px 0 0 0 !important; +} + +.loading { + position: relative; + margin: auto auto; + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} + +.loading_icon { + animation: spin 1s linear infinite; + width: 203px; + height: 203px; +} + +@keyframes spin { + from { transform: rotate(0deg); } + to { transform: rotate(360deg); } +} + +.ant-layout-footer { + background-color: #fff; + height: 110px; + display: flex; + align-items: center; + position: relative; +} + +.ant-layout-footer .link { + margin-right: 12px; + cursor: pointer; +} + +.logo-wrapper{ + flex: 1; + display: flex; + align-items: center; + justify-content: center; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + font-size: 20px; + color: #182233; +} +.logo-wrapper span { + margin-right: 12px; +} + +.data-table-wrapper { + box-shadow: 0px 4px 10px rgb(0 0 0 / 10%); + position: relative; + z-index: 1; + border-radius: 10px; + overflow: hidden; +} + +.data-table-wrapper::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: linear-gradient(90.11deg, #FFFFFF 1.08%, #EEF0FA 100%); + opacity: 0.8; + z-index: -1; +} +.data-table-wrapper tbody { + font-weight: 500; + font-size: 14px; + line-height: 17px; + letter-spacing: -0.01em; + color: #182233; +} + +table { + border-collapse: separate; + border-spacing: 0; +} + +td, th { + border: none; + margin: 0; +} + +tr { + box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); +} + +tr:first-child { + background: none; + box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); + margin-top: 2px; +} + +.ant-layout-header { + min-width: unset !important; +} + +.header-left { + flex: 1; +} +.header-left span{ + font-family: 'Montserrat'; + font-style: normal; + font-weight: 700; + font-size: 25px; + line-height: 30px; + letter-spacing: -0.015em; +} +.header-right { + display: flex; + align-items: center; + justify-content: center; + gap: 60px; +} + +.header-right .active-node{ + display: flex; + align-items: center; + justify-content: center; + width: 46px; + height: 46px; + border-radius: 50%; + cursor: pointer; + position: relative; + z-index: 1; + overflow: hidden; +} +.header-right .active-node::before{ + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(27, 52, 160, 0.8); + filter: blur(7.5px); + z-index: -1; + opacity: 0; + transition: opacity 0.3s ease-in-out; +} +.header-right .active-node:hover::before{ + opacity: 1; +} + +.header-right .active-node.active-node--active::before{ + content: ""; + background: #1C39BB; + filter: none; + z-index: -1; + opacity: 1; +} + +.no-data { + height: 400px; + display: flex; + align-items: center; + justify-content: center; +} + +.no-data__content { + width: 500px; + height: 180px; + background: #FFFFFF; + box-shadow: 0px 5px 20px rgb(0 0 0 / 25%); + border-radius: 20px; + display: flex; + align-items: center; + justify-content: center; + font-weight: 600; + font-size: 20px; + line-height: 32px; + letter-spacing: -0.015em; +} + +.button-filter { + height: auto; + padding: 5px; + background: linear-gradient(90deg, #FFFFFF 0%, #EDEFFA 114.85%); + box-shadow: 0px 4px 10px rgb(0 0 0 / 25%); + border-radius: 10px; + margin-left: 40px; +} + +.search-input .anticon-search svg{ + width: 24px; + height: 24px; + fill: #c8cace; +} + +.filter-modal .ant-modal, +.filter-modal .ant-modal-title{ + color: #182233; +} + +.filter-modal .ant-switch { + background: #D9DDE7; +} +.filter-modal .ant-switch-checked { + background: #1C39BB; +} +.filter-modal .ant-modal-content { + width: 600px; + background: #FFFFFF; + box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.25); + border-radius: 20px; + overflow: hidden; + padding: 38px; +} +.filter-modal .ant-modal-header { + border: none; +} +.filter-modal .ant-modal-title { + font-weight: 700; + font-size: 25px; + line-height: 30px; + letter-spacing: -0.01em; + color: #182233; + text-align: center; +} +.filter-modal .ant-modal-body { + text-align: center; + padding: 32px 0 42px; +} +.filter-modal .ant-modal-footer { + border: none; + text-align: center; + padding: 0; +} +.filter-modal .ant-modal-footer .ant-btn-default{ + background: #6B7280; + color: #fff; +} +.filter-modal .ant-modal-footer .ant-btn{ + min-width: 110px; +} +.filter-modal .filter-list { + column-count: 2; + display: inline-block; + margin: 0 auto; + column-gap: 100px; +} + +.filter-modal .filter-item { + display: flex; + justify-content: space-between; + align-items: center; + width: 160px; + font-weight: 500; + font-size: 14px; + line-height: 17px; + letter-spacing: -0.01em; + color: #182233; + margin-bottom: 24px; +} +.filter-modal .ant-switch { + height: 17px; + line-height: 17px; + border-radius: 39px; +} +.filter-modal .ant-switch-handle { + height: 17px; + line-height: 17px; + top: 0; + left: 0; +} +.filter-modal .ant-switch-checked .ant-switch-handle { + left: calc(100% - 17px - 0px); +} +.filter-modal .ant-switch-checked .ant-switch-handle::before { + background: #D9DDE7; +} +.filter-modal .ant-switch-handle::before { + background: #1F1F43; +} + +.ant-breadcrumb a, +.ant-breadcrumb .current, +.ant-breadcrumb-link, +.ant-breadcrumb-separator { + font-weight: 500; + font-size: 14px; + line-height: 17px; + letter-spacing: -0.015em; + color: #182233; +} + +.ant-breadcrumb .current { + color: #1C39BB; +} + +.layout-content-wrapper { + margin: 0 70px; +} + +.feedback-modal .ant-modal-content { + background: #FFFFFF; + box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.15); + border-radius: 6px; +} +.feedback-modal .anticon { + color: #76CA66 !important; +} +.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content { + font-weight: 400; + font-size: 12px; + line-height: 15px; + letter-spacing: -0.01em; + color: #7E7E7E; +} +.feedback-modal .ant-modal-bodyy { + padding: 36px 30px; +} +.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content strong { + font-weight: 600; +} +.feedback-modal .ant-modal-confirm .ant-modal-confirm-btns { + margin: 18px auto 0; + text-align: center; + float: none; +} +.feedback-modal .ant-btn-primary:focus { + background: #1C39BB; + border-color: #1C39BB; +} + +.ant-modal-mask { + background: #333333 !important; + opacity: 0.6 !important; +} + +.ant-popover-inner { + border-radius: 6px; + text-align: center; +} +.ant-popover-inner .ant-popover-title{ + font-style: normal; + font-weight: 600; + font-size: 12px; + line-height: 15px; + letter-spacing: -0.01em; + color: #7E7E7E; + padding: 8px 16px; + border-bottom: 0.2px solid #9CA3AF;; +} +.ant-popover-inner .ant-popover-inner-content{ + font-style: normal; + font-weight: 400; + font-size: 10px; + line-height: 12px; + letter-spacing: -0.01em; + color: #7E7E7E; +} + +.nodeaddress { + display: inline-block; + width: 85px; +} \ No newline at end of file diff --git a/src/route.constants.js b/src/route.constants.js index d42f1f3..7117f85 100644 --- a/src/route.constants.js +++ b/src/route.constants.js @@ -7,6 +7,9 @@ export const PUBLIC_ROUTE = { PAGE_404: '/404', PAGE_500: '/500', AUTH0_CALLBACK: '/auth0loginCallback', + ACTIVE_DASHBOARD: '/active-dashboard', + STANDBY_DASHBOARD: '/standby-dashboard', + OTHER_DASHBOARD: '/other-dashboard', }; export const PRIVATE_ROUTE = { diff --git a/src/router.js b/src/router.js index 5b37c98..8fac3a4 100644 --- a/src/router.js +++ b/src/router.js @@ -17,7 +17,22 @@ const publicRoutes = [ exact: true, component: lazy(() => import('@iso/containers/A_monitor/monitorpage.js')), //component: lazy(() => import('@iso/containers/Pages/SignIn/SignIn')), - } + }, + { + path: PUBLIC_ROUTE.ACTIVE_DASHBOARD, + exact: true, + component: lazy(() => import('@iso/containers/A_monitor/activepage.js')), + }, + { + path: PUBLIC_ROUTE.STANDBY_DASHBOARD, + exact: true, + component: lazy(() => import('@iso/containers/A_monitor/standbypage.js')), + }, + { + path: PUBLIC_ROUTE.OTHER_DASHBOARD, + exact: true, + component: lazy(() => import('@iso/containers/A_monitor/otherpage.js')), + }, ]; export default function Routes() { From b6aff895de8c7c92e621957781f0c3ac38213538 Mon Sep 17 00:00:00 2001 From: ThuanLe Date: Sat, 25 Feb 2023 09:56:29 +0700 Subject: [PATCH 03/78] Feedback modal - correct button position --- src/containers/A_monitor/styles.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/containers/A_monitor/styles.css b/src/containers/A_monitor/styles.css index ad06245..d00b9f7 100644 --- a/src/containers/A_monitor/styles.css +++ b/src/containers/A_monitor/styles.css @@ -477,13 +477,13 @@ tr:first-child { letter-spacing: -0.01em; color: #7E7E7E; } -.feedback-modal .ant-modal-bodyy { +.feedback-modal .ant-modal-body { padding: 36px 30px; } .feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content strong { font-weight: 600; } -.feedback-modal .ant-modal-confirm .ant-modal-confirm-btns { +.feedback-modal.ant-modal-confirm .ant-modal-confirm-btns { margin: 18px auto 0; text-align: center; float: none; From ac7def736d15de4afe2b7a65aa2ac9549350394b Mon Sep 17 00:00:00 2001 From: ThuanLe Date: Mon, 27 Feb 2023 21:00:25 +0700 Subject: [PATCH 04/78] add missing column, tooltip --- src/components/VisibleColumn/VisibleColumn.js | 4 ++ src/containers/A_monitor/activepage.js | 21 ++++++-- src/containers/A_monitor/monitorpage.js | 54 ++++++++++++++++--- src/containers/A_monitor/otherpage.js | 21 ++++++-- src/containers/A_monitor/standbypage.js | 21 ++++++-- 5 files changed, 102 insertions(+), 19 deletions(-) diff --git a/src/components/VisibleColumn/VisibleColumn.js b/src/components/VisibleColumn/VisibleColumn.js index 5fdf32c..7a9598f 100644 --- a/src/components/VisibleColumn/VisibleColumn.js +++ b/src/components/VisibleColumn/VisibleColumn.js @@ -90,6 +90,10 @@ function VisibleColumn({ initialConfig, onConfigUpdate }) { RPC handleConfigChange('rpc', checked)} />
    +
    + BFR + handleConfigChange('bfr', checked)} /> +
    diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 2f41fa8..3b1aacb 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -53,6 +53,7 @@ const { Header, Footer, Content } = Layout; const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} const tdStyle = {minWidth: 60, textAlign: 'right', fontSize: 14, padding: '10px 15px'} +const trStyle = {height: 45} const iconStyle = {minWidth: 25, padding: 5, paddingLeft: 10, paddingRight: 10} @@ -354,6 +355,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai clickSortHeader('score')}>Score clickSortHeader('version')}>Version RPC + BFR {chains && <> @@ -370,8 +372,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {currentItems.map((item, index) => ( - - + + {item.age.toFixed(2)} {item.action} - + + + + + {item.location} ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} {parseInt(item.slash_points).toLocaleString()} {item.score} {item.version} - {item.rpc === 'true' ? '*' : 'BAD'} + {/* {item.rpc === 'true' ? '*' : 'BAD'} */} + {item.rpc !== null ? '*' : 'BAD'} + {item.bifrost !== null ? '*' : 'BAD' } {chains && <> @@ -444,6 +456,7 @@ const defaulColumns = { score: true, version: true, rpc: true, + bfr: true, } export default class extends Component { constructor(props) { diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index e72544c..4b368d6 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -66,6 +66,7 @@ const { Header, Footer, Content } = Layout; const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} const tdStyle = {minWidth: 60, textAlign: 'right', fontSize: 14, padding: '10px 15px'} +const trStyle = {height: 45} const iconStyle = {minWidth: 25, padding: 5, paddingLeft: 10, paddingRight: 10} @@ -282,7 +283,7 @@ const ReturnIspImage = ({isp}) => { return # } - + return '-' } @@ -378,6 +379,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai clickSortHeader('score')}>Score clickSortHeader('version')}>Version RPC + BFR {chains && <> @@ -394,8 +396,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {currentItems.map((item, index) => ( - - + + {item.age.toFixed(2)} {item.action} - + + + + + {item.location} ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} {parseInt(item.slash_points).toLocaleString()} {item.score} {item.version} - {item.rpc === 'true' ? '*' : 'BAD'} + {/* {item.rpc === 'true' ? '*' : 'BAD'} */} + {item.rpc !== null ? '*' : 'BAD'} + {item.bifrost !== null ? '*' : 'BAD' } {chains && <> @@ -468,6 +480,7 @@ const defaulColumns = { score: true, version: true, rpc: true, + bfr: true, } export default class extends Component { @@ -813,9 +826,36 @@ We use string sort function if value is one of the arrays else do second sort nu Thornode Monitor
    -
    this.onNodesFilter('active')}>
    + {/*
    this.onNodesFilter('active')}>
    this.onNodesFilter('standby')}>
    -
    this.onNodesFilter('orthers')}>
    +
    this.onNodesFilter('orthers')}>
    */} +
    this.onNodesFilter('active')}> + + + +
    +
    this.onNodesFilter('standby')}> + + + +
    +
    this.onNodesFilter('orthers')}> + + + +
    diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 94349f4..ae93c7b 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -58,6 +58,7 @@ const { Header, Footer, Content } = Layout; const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} const tdStyle = {minWidth: 60, textAlign: 'right', fontSize: 14, padding: '10px 15px'} +const trStyle = {height: 45} const iconStyle = {minWidth: 25, padding: 5, paddingLeft: 10, paddingRight: 10} @@ -359,6 +360,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai clickSortHeader('score')}>Score clickSortHeader('version')}>Version RPC + BFR {chains && <> @@ -375,8 +377,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {currentItems.map((item, index) => ( - - + + {item.age.toFixed(2)} {item.action} - + + + + + {item.location} ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} {parseInt(item.slash_points).toLocaleString()} {item.score} {item.version} - {item.rpc === 'true' ? '*' : 'BAD'} + {/* {item.rpc === 'true' ? '*' : 'BAD'} */} + {item.rpc !== null ? '*' : 'BAD'} + {item.bifrost !== null ? '*' : 'BAD' } {chains && <> @@ -449,6 +461,7 @@ const defaulColumns = { score: true, version: true, rpc: true, + bfr: true, } export default class extends Component { constructor(props) { diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 0b4d498..265c02b 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -46,6 +46,7 @@ const { Header, Footer, Content } = Layout; const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} const tdStyle = {minWidth: 60, textAlign: 'right', fontSize: 14, padding: '10px 15px'} +const trStyle = {height: 45} const iconStyle = {minWidth: 25, padding: 5, paddingLeft: 10, paddingRight: 10, padding: '10px 15px'} @@ -345,6 +346,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai clickSortHeader('score')}>Score clickSortHeader('version')}>Version RPC + BFR {chains && <> @@ -361,8 +363,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {currentItems.map((item, index) => ( - - + + {item.age.toFixed(2)} {item.action} - + + + + + {item.location} ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} {parseInt(item.slash_points).toLocaleString()} {item.score} {item.version} - {item.rpc === 'true' ? '*' : 'BAD'} + {/* {item.rpc === 'true' ? '*' : 'BAD'} */} + {item.rpc !== null ? '*' : 'BAD'} + {item.bifrost !== null ? '*' : 'BAD' } {chains && <> @@ -435,6 +447,7 @@ const defaulColumns = { score: true, version: true, rpc: true, + bfr: true, } export default class extends Component { constructor(props) { From baacf20eaeb538c9fcd5ed6dcd0beaca81f72fe9 Mon Sep 17 00:00:00 2001 From: ThuanLe Date: Mon, 27 Feb 2023 21:35:48 +0700 Subject: [PATCH 05/78] update node table --- src/containers/A_monitor/activepage.js | 10 +++++----- src/containers/A_monitor/monitorpage.js | 10 +++++----- src/containers/A_monitor/otherpage.js | 10 +++++----- src/containers/A_monitor/standbypage.js | 10 +++++----- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 3b1aacb..733d217 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -343,10 +343,10 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai clickSortHeader('node_address')}>Validator Nodes - clickSortHeader('age')}>Age - clickSortHeader('action')}>Action + clickSortHeader('age')}>Age + clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP - clickSortHeader('location')}>Location + clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards @@ -411,8 +411,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.score} {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} - {item.rpc !== null ? '*' : 'BAD'} - {item.bifrost !== null ? '*' : 'BAD' } + {item.rpc !== null ? '*' : 'Bad'} + {item.bifrost !== null ? '*' : 'Bad' } {chains && <> diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 4b368d6..cc84a33 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -367,10 +367,10 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai clickSortHeader('node_address')}>Validator Nodes - clickSortHeader('age')}>Age - clickSortHeader('action')}>Action + clickSortHeader('age')}>Age + clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP - clickSortHeader('location')}>Location + clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards @@ -435,8 +435,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.score} {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} - {item.rpc !== null ? '*' : 'BAD'} - {item.bifrost !== null ? '*' : 'BAD' } + {item.rpc !== null ? '*' : 'Bad'} + {item.bifrost !== null ? '*' : 'Bad' } {chains && <> diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index ae93c7b..6ab2f23 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -348,10 +348,10 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai clickSortHeader('node_address')}>Validator Nodes - clickSortHeader('age')}>Age - clickSortHeader('action')}>Action + clickSortHeader('age')}>Age + clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP - clickSortHeader('location')}>Location + clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards @@ -416,8 +416,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.score} {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} - {item.rpc !== null ? '*' : 'BAD'} - {item.bifrost !== null ? '*' : 'BAD' } + {item.rpc !== null ? '*' : 'Bad'} + {item.bifrost !== null ? '*' : 'Bad' } {chains && <> diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 265c02b..438ecae 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -334,10 +334,10 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai clickSortHeader('node_address')}>Validator Nodes - clickSortHeader('age')}>Age - clickSortHeader('action')}>Action + clickSortHeader('age')}>Age + clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP - clickSortHeader('location')}>Location + clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards @@ -402,8 +402,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.score} {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} - {item.rpc !== null ? '*' : 'BAD'} - {item.bifrost !== null ? '*' : 'BAD' } + {item.rpc !== null ? '*' : 'Bad'} + {item.bifrost !== null ? '*' : 'Bad' } {chains && <> From 3bee284f0e56c14ee5d55062e60e6519742c0222 Mon Sep 17 00:00:00 2001 From: ThuanLe Date: Mon, 27 Feb 2023 21:40:08 +0700 Subject: [PATCH 06/78] Show Good/Bad instead of */Bad --- src/containers/A_monitor/activepage.js | 4 ++-- src/containers/A_monitor/monitorpage.js | 4 ++-- src/containers/A_monitor/otherpage.js | 4 ++-- src/containers/A_monitor/standbypage.js | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 733d217..43bf1eb 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -411,8 +411,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.score} {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} - {item.rpc !== null ? '*' : 'Bad'} - {item.bifrost !== null ? '*' : 'Bad' } + {item.rpc !== null ? 'Good' : 'Bad'} + {item.bifrost !== null ? 'Good' : 'Bad' } {chains && <> diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index cc84a33..acbd91c 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -435,8 +435,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.score} {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} - {item.rpc !== null ? '*' : 'Bad'} - {item.bifrost !== null ? '*' : 'Bad' } + {item.rpc !== null ? 'Good' : 'Bad'} + {item.bifrost !== null ? 'Good' : 'Bad' } {chains && <> diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 6ab2f23..84b1e17 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -416,8 +416,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.score} {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} - {item.rpc !== null ? '*' : 'Bad'} - {item.bifrost !== null ? '*' : 'Bad' } + {item.rpc !== null ? 'Good' : 'Bad'} + {item.bifrost !== null ? 'Good' : 'Bad' } {chains && <> diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 438ecae..c56034b 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -402,8 +402,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.score} {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} - {item.rpc !== null ? '*' : 'Bad'} - {item.bifrost !== null ? '*' : 'Bad' } + {item.rpc !== null ? 'Good' : 'Bad'} + {item.bifrost !== null ? 'Good' : 'Bad' } {chains && <> From 49eb87c72e08f1d09604fd660c8680064226120e Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Tue, 28 Feb 2023 15:48:55 +0700 Subject: [PATCH 07/78] Reduce location min width --- src/containers/A_monitor/activepage.js | 2 +- src/containers/A_monitor/monitorpage.js | 2 +- src/containers/A_monitor/otherpage.js | 2 +- src/containers/A_monitor/standbypage.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 43bf1eb..0ff4997 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -346,7 +346,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai clickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP - clickSortHeader('location')}>Location + clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index acbd91c..de272df 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -370,7 +370,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai clickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP - clickSortHeader('location')}>Location + clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 84b1e17..4567f1a 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -351,7 +351,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai clickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP - clickSortHeader('location')}>Location + clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index c56034b..4f9edb7 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -337,7 +337,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai clickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP - clickSortHeader('location')}>Location + clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards From 2af05c28c7dc8486b3e37b24220377a4caf672d3 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 28 Feb 2023 10:20:17 +0000 Subject: [PATCH 08/78] fixed false reporting of rpc and bifrost health --- .../thormonitor_collect_data_rpc_bifrost.py | 37 ++++++++++++------- src/containers/A_monitor/activepage.js | 4 +- src/containers/A_monitor/monitorpage.js | 4 +- src/containers/A_monitor/otherpage.js | 4 +- src/containers/A_monitor/standbypage.js | 4 +- 5 files changed, 32 insertions(+), 21 deletions(-) diff --git a/backend python/thormonitor_collect_data_rpc_bifrost.py b/backend python/thormonitor_collect_data_rpc_bifrost.py index 93792a4..d9c2f7b 100644 --- a/backend python/thormonitor_collect_data_rpc_bifrost.py +++ b/backend python/thormonitor_collect_data_rpc_bifrost.py @@ -7,12 +7,6 @@ from threading import Thread def requestThread(data, Queue): - """ - requestThread thread to grab p2p id and health of a given node - - :param data: node to grab info for - :param Queue: queue to push output too - """ if data['ip_address'] != '': bifrostURL = "http://" + data['ip_address'] + ":6040/p2pid" healthUrl = "http://" + data['ip_address'] + ":27147/health?" @@ -31,17 +25,14 @@ def requestThread(data, Queue): 'bifrostURL': bifrostURL, 'healthURL': healthUrl} Queue.put(dataReturn) except Exception as e: - #catch all exceptions from this thread and return without writing to the queue, results in data not - #being updated for this node. return def biFrostGrabDataAndSaveToDB(): - """ - biFrostGrabDataAndSaveToDB used to update rpc and bifrost info in thornode_monitor - """ responseQueue = Queue() currentDBData = (grabQuery('SELECT * FROM noderunner.thornode_monitor')) + fullAddrList = [x['node_address'] for x in currentDBData] + currentAddrList = [] threads = list() for node in currentDBData: # print("create and start thread ", str(index)) @@ -59,8 +50,28 @@ def biFrostGrabDataAndSaveToDB(): while not responseQueue.empty(): resp = responseQueue.get() + currentAddrList.append(resp['node_address']) + if len(resp['rpc']['result'] == 0): + query = "UPDATE noderunner.thornode_monitor SET " \ + "rpc = '{rpc}', bifrost = '{bifrost}' " \ + "WHERE (node_address = '{address}');".format(rpc=json.dumps(resp['rpc']),bifrost=resp['bifrost'],address=resp['node_address']) + + commitQuery(query) + else: + #rpc has an error so report as bad + query = "UPDATE noderunner.thornode_monitor SET " \ + "rpc = '{rpc}', bifrost = '{bifrost}' " \ + "WHERE (node_address = '{address}');".format(rpc="null", bifrost=resp['bifrost'], + address=resp['node_address']) + + commitQuery(query) + + newList = list(set(fullAddrList).symmetric_difference(set(currentAddrList))) + + for node in newList: query = "UPDATE noderunner.thornode_monitor SET " \ "rpc = '{rpc}', bifrost = '{bifrost}' " \ - "WHERE (node_address = '{address}');".format(rpc=json.dumps(resp['rpc']),bifrost=resp['bifrost'],address=resp['node_address']) + "WHERE (node_address = '{address}');".format(rpc="null", bifrost="null", + address=node) - commitQuery(query) + commitQuery(query) \ No newline at end of file diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 0ff4997..4ce3894 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -411,8 +411,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.score} {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} - {item.rpc !== null ? 'Good' : 'Bad'} - {item.bifrost !== null ? 'Good' : 'Bad' } + {item.rpc !== "null" ? 'Good' : 'Bad'} + {item.bifrost !== "null" ? 'Good' : 'Bad' } {chains && <> diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index de272df..ecbd8dc 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -435,8 +435,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.score} {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} - {item.rpc !== null ? 'Good' : 'Bad'} - {item.bifrost !== null ? 'Good' : 'Bad' } + {item.rpc !== "null" ? 'Good' : 'Bad'} + {item.bifrost !== "null" ? 'Good' : 'Bad' } {chains && <> diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 4567f1a..1efc234 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -416,8 +416,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.score} {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} - {item.rpc !== null ? 'Good' : 'Bad'} - {item.bifrost !== null ? 'Good' : 'Bad' } + {item.rpc !== "null" ? 'Good' : 'Bad'} + {item.bifrost !== "null" ? 'Good' : 'Bad' } {chains && <> diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 4f9edb7..85cbf19 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -402,8 +402,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.score} {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} - {item.rpc !== null ? 'Good' : 'Bad'} - {item.bifrost !== null ? 'Good' : 'Bad' } + {item.rpc !== "null" ? 'Good' : 'Bad'} + {item.bifrost !== "null" ? 'Good' : 'Bad' } {chains && <> From d30190b7f62f416533480fc26073681fe0e6b24f Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 28 Feb 2023 11:15:53 +0000 Subject: [PATCH 09/78] update readme --- README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/README.md b/README.md index 39ee474..c9e0342 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,62 @@ # Thornode Monitor +The Monitor dashboard is used to collate information on active, standby and old nodes on the rune network it collates information +from multiple sources and displays them on a single dashboard. This repo consists of both the front end (js react app) +and the backend module (a python api server). + +1) Front end: + - This is all the code in this repository, minus the lambda functions folder and python backend folder + - Built using react + - It pulls data from the backend api + +2) Back end: + - Several parts to the backend + 1) mySQL database to store all the data + 2) python app responsible to collect data and provide an api access point to the front end + + + - The database is fairly simple and consists of 2 tables with the following structure + + + - thornode_monitor_global - holds network information + - primary_key - int + - maxHeight - int (current blockheight used to pull other data) + - retiring - boolean (indicates if a vault is retiring) + - coingecko - string (json string containing price/trading info pulled from coingecko api) + - lastChurn - int (block of last churn) + - secondsPerBlock - float + - churnInterval - int + - BadValidatorRedline - int + + + - thornode_monitor - holds information on each node in the network + - node_address - string (primary key) + - active_block_height - int (block at which the node became active) + - bond_provider - string (json string containing information on bonds and providers) + - bond -int (amount bonded) + - current_award - int (amount awarded this epoch) + - slash_points - int (slash points this epoch) + - forced_to_leave - boolean + - requested_to_leave - boolean + - jail - string (json string containing information on any past jailing) + - observe_chains - string (json string containing block heights for downstream chains) + - preflight_status - string + - status - string + - status_since - int + - version - string + - ip_address - string + - location - string + - isp - string + - rpc - string (json string of response from health rpc calls) + - bifrost - string (bifrost p2pid) + + + - The python app runs off a main loop which pulls data every 20 seconds and updates the DB, it listens to api calls to + /api/grabData and returns the data in json. + + +# Old deployment via AWS lambda (no longer maintained in this fork) + There are several moving parts to this dashboard 1) Front end: From 96cbeaf0f95f71d3e58c410c545de97e89815819 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 28 Feb 2023 11:30:55 +0000 Subject: [PATCH 10/78] update comments --- backend python/thormonitor_collect_data_rpc_bifrost.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/backend python/thormonitor_collect_data_rpc_bifrost.py b/backend python/thormonitor_collect_data_rpc_bifrost.py index d9c2f7b..7964afe 100644 --- a/backend python/thormonitor_collect_data_rpc_bifrost.py +++ b/backend python/thormonitor_collect_data_rpc_bifrost.py @@ -7,6 +7,11 @@ from threading import Thread def requestThread(data, Queue): + """ + requestThread thread to grab p2p id and health of a given node + :param data: node to grab info for + :param Queue: queue to push output too + """ if data['ip_address'] != '': bifrostURL = "http://" + data['ip_address'] + ":6040/p2pid" healthUrl = "http://" + data['ip_address'] + ":27147/health?" @@ -29,6 +34,9 @@ def requestThread(data, Queue): def biFrostGrabDataAndSaveToDB(): + """ + biFrostGrabDataAndSaveToDB used to update rpc and bifrost info in thornode_monitor + """ responseQueue = Queue() currentDBData = (grabQuery('SELECT * FROM noderunner.thornode_monitor')) fullAddrList = [x['node_address'] for x in currentDBData] @@ -66,6 +74,8 @@ def biFrostGrabDataAndSaveToDB(): commitQuery(query) + # Collect a list of all node which have been missed in the queue, this indicates that there were errors pulling the data + # inside the thread so report any missing as null newList = list(set(fullAddrList).symmetric_difference(set(currentAddrList))) for node in newList: From 7caefc8c00d6b5ac698ddb7dbfa9675bd5caab28 Mon Sep 17 00:00:00 2001 From: ThuanLe Date: Wed, 1 Mar 2023 23:45:18 +0700 Subject: [PATCH 11/78] add leave column, table item per page, update table --- src/containers/A_monitor/activepage.js | 216 +++++++++++++----------- src/containers/A_monitor/monitorpage.js | 216 +++++++++++++----------- src/containers/A_monitor/otherpage.js | 215 ++++++++++++----------- src/containers/A_monitor/standbypage.js | 215 ++++++++++++----------- src/containers/A_monitor/styles.css | 17 ++ 5 files changed, 495 insertions(+), 384 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 0ff4997..566392b 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -3,7 +3,7 @@ import Modals from '@iso/components/Feedback/Modal'; import Popover from '@iso/components/uielements/popover'; import { getData, setCookie, getCookie } from 'CommonFunctions' import { ModalContent } from '../Feedback/Modal/Modal.styles'; -import { Layout, Button, Input, Modal, Switch, Breadcrumb } from 'antd'; +import { Layout, Button, Input, Modal, Switch, Breadcrumb, Select } from 'antd'; import "./styles.css"; import { SearchOutlined, LeftOutlined , RightOutlined } from '@ant-design/icons'; @@ -48,7 +48,7 @@ import activeIcon from '@iso/assets/images/overview/active_icon.svg'; import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; - +const leaveIcon = const { Header, Footer, Content } = Layout; const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} @@ -288,10 +288,8 @@ const BondProviderPopOver = ({data}) => { } const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { - - const [currentPage, setCurrentPage] = useState(1); - const itemsPerPage = 20; + const [itemsPerPage, setItemsPerPage] = useState(25); const totalPages = Math.ceil(nodeData.length / itemsPerPage); const pageNumbers = []; @@ -337,99 +335,124 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai return visibleColumns && visibleColumns[key] ? '' : 'hidden' }; - return ( + const updatePagingItem = (value) => { + setItemsPerPage(value) + }; + return (<> +
    + Nodes per page: + + +
    - - - - - - - - - - - - - - - - - - - {chains && - <> - - - - - - - - - } - - - - {currentItems.map((item, index) => ( - - - - - - - - + + + + + + + + + + + + {/* */} + + + + + {chains && + <> + + + + + + + + + } + + ))} + +
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionRPCBFR#######
    - - copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {`${item.node_address.substring(0, Math.min(9, item.node_address.length))}...`} - - - - {item.age.toFixed(2)}{item.action} - - - - {item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } - title={'Bond Providers'} - trigger="hover" - >{item.bond_providers.providers.length} +
    + + + + + + + + + + + + + + + + + + + + {chains && + <> + + + + + + + + + } + + + + {currentItems.map((item, index) => ( + + - - - - - - {/* */} - - - - {chains && - <> - - - - - - - - - } - - ))} - -
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon}RPCBFR#######
    + + copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> + {/* {`${item.node_address.substring(0, Math.min(9, item.node_address.length))}...`} */} + {`...${item.node_address.substring(item.node_address.length - 5)}`} + + - ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}{item.rpc !== null ? 'Good' : 'Bad'}{item.bifrost !== null ? 'Good' : 'Bad' }
    - + +
    {item.age.toFixed(2)}{item.action} + + + + {item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } + title={'Bond Providers'} + trigger="hover" + >{item.bond_providers.providers.length} + + ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}{item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'}{item.rpc !== null ? 'Good' : 'Bad'}{item.bifrost !== null ? 'Good' : 'Bad' }
    +
    • @@ -462,6 +483,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    + ) } diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 4567f1a..b3b7ce9 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -4,7 +4,7 @@ import Modals from '@iso/components/Feedback/Modal'; import Popover from '@iso/components/uielements/popover'; import { getData, setCookie, getCookie } from 'CommonFunctions' import { ModalContent } from '../Feedback/Modal/Modal.styles'; -import { Layout, Button, Input, Modal, Switch, Breadcrumb } from 'antd'; +import { Layout, Button, Input, Breadcrumb, Select } from 'antd'; import "./styles.css"; import { Link } from 'react-router-dom'; import { PUBLIC_ROUTE } from '../../route.constants'; @@ -51,7 +51,6 @@ import activeIcon from '@iso/assets/images/overview/active_icon.svg'; import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; - const leaveIcon = const { Header, Footer, Content } = Layout; @@ -293,10 +292,8 @@ const BondProviderPopOver = ({data}) => { } const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { - - const [currentPage, setCurrentPage] = useState(1); - const itemsPerPage = 20; + const [itemsPerPage, setItemsPerPage] = useState(25); const totalPages = Math.ceil(nodeData.length / itemsPerPage); const pageNumbers = []; @@ -342,99 +339,124 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai return visibleColumns && visibleColumns[key] ? '' : 'hidden' }; - return ( + const updatePagingItem = (value) => { + setItemsPerPage(value) + }; + return (<> +
    + Nodes per page: + + +
    - - - - - - - - - - - - - - - - - - - {chains && - <> - - - - - - - - - } - - - - {currentItems.map((item, index) => ( - - - - - - - - + + + + + + + + + + + + {/* */} + + + + + {chains && + <> + + + + + + + + + } + + ))} + +
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionRPCBFR#######
    - - copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {`${item.node_address.substring(0, Math.min(9, item.node_address.length))}...`} - - - - {item.age.toFixed(2)}{item.action} - - - - {item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } - title={'Bond Providers'} - trigger="hover" - >{item.bond_providers.providers.length} +
    + + + + + + + + + + + + + + + + + + + + {chains && + <> + + + + + + + + + } + + + + {currentItems.map((item, index) => ( + + - - - - - - {/* */} - - - - {chains && - <> - - - - - - - - - } - - ))} - -
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon}RPCBFR#######
    + + copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> + {/* {`${item.node_address.substring(0, Math.min(9, item.node_address.length))}...`} */} + {`...${item.node_address.substring(item.node_address.length - 5)}`} + + - ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}{item.rpc !== null ? 'Good' : 'Bad'}{item.bifrost !== null ? 'Good' : 'Bad' }
    - + +
    {item.age.toFixed(2)}{item.action} + + + + {item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } + title={'Bond Providers'} + trigger="hover" + >{item.bond_providers.providers.length} + + ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}{item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'}{item.rpc !== null ? 'Good' : 'Bad'}{item.bifrost !== null ? 'Good' : 'Bad' }
    +
    • @@ -429,6 +453,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    + ) } diff --git a/src/containers/A_monitor/styles.css b/src/containers/A_monitor/styles.css index d00b9f7..21fa73d 100644 --- a/src/containers/A_monitor/styles.css +++ b/src/containers/A_monitor/styles.css @@ -524,4 +524,21 @@ tr:first-child { .nodeaddress { display: inline-block; width: 85px; +} + +.item-to-show { + padding: 20px 0; +} +/* .item-to-show .ant-select-dropdown { + min-width: none !important; + width: 70px !important; +} */ + +.item-to-show span { + font-weight: 600; + font-size: 12px; + line-height: 15px; + letter-spacing: -0.015em; + color: #182233; + margin-right: 20px; } \ No newline at end of file From d93beda4ed590ab37ae3e0a45329d0e76f067e70 Mon Sep 17 00:00:00 2001 From: ThuanLe Date: Fri, 3 Mar 2023 16:35:43 +0700 Subject: [PATCH 12/78] update table --- src/containers/A_monitor/activepage.js | 2 +- src/containers/A_monitor/monitorpage.js | 4 +--- src/containers/A_monitor/otherpage.js | 2 +- src/containers/A_monitor/standbypage.js | 2 +- src/containers/A_monitor/styles.css | 7 +++---- 5 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 566392b..f48c0e4 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -346,7 +346,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai defaultValue={itemsPerPage} showSearch={false} onChange={updatePagingItem} - style={{ width: 100, borderRadius: 10 }} + style={{ width: 80, borderRadius: 10 }} dropdownMatchSelectWidth={false} options={[ { value: '10', label: '10' }, diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index b08410d..02998d8 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -82,8 +82,6 @@ const copyToClipboard = str => { }; - - function popUpModal(msg, ip) { Modals.info({ title:

    Success

    , @@ -368,7 +366,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai defaultValue={itemsPerPage} showSearch={false} onChange={updatePagingItem} - style={{ width: 100, borderRadius: 10 }} + style={{ width: 80, borderRadius: 10 }} dropdownMatchSelectWidth={false} options={[ { value: '10', label: '10' }, diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index b3b7ce9..590aea8 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -350,7 +350,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai defaultValue={itemsPerPage} showSearch={false} onChange={updatePagingItem} - style={{ width: 100, borderRadius: 10 }} + style={{ width: 80, borderRadius: 10 }} dropdownMatchSelectWidth={false} options={[ { value: '10', label: '10' }, diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index c97c2c2..d554ce4 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -338,7 +338,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai defaultValue={itemsPerPage} showSearch={false} onChange={updatePagingItem} - style={{ width: 100, borderRadius: 10 }} + style={{ width: 80, borderRadius: 10 }} dropdownMatchSelectWidth={false} options={[ { value: '10', label: '10' }, diff --git a/src/containers/A_monitor/styles.css b/src/containers/A_monitor/styles.css index 21fa73d..b282b3d 100644 --- a/src/containers/A_monitor/styles.css +++ b/src/containers/A_monitor/styles.css @@ -230,7 +230,7 @@ iframe { width: 100%; height: 100%; background: linear-gradient(90.11deg, #FFFFFF 1.08%, #EEF0FA 100%); - opacity: 0.8; + opacity: 0.9; z-index: -1; } .data-table-wrapper tbody { @@ -252,12 +252,11 @@ td, th { } tr { - box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 2px rgb(0 0 0 / 10%); } tr:first-child { background: none; - box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); margin-top: 2px; } @@ -534,7 +533,7 @@ tr:first-child { width: 70px !important; } */ -.item-to-show span { +.item-to-show > span { font-weight: 600; font-size: 12px; line-height: 15px; From 2249486819fc47ad4640ec24d76c4daa168c1e4b Mon Sep 17 00:00:00 2001 From: ThuanLe Date: Fri, 3 Mar 2023 16:41:01 +0700 Subject: [PATCH 13/78] adjust nodes per page border --- src/containers/A_monitor/styles.css | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/containers/A_monitor/styles.css b/src/containers/A_monitor/styles.css index b282b3d..99894e7 100644 --- a/src/containers/A_monitor/styles.css +++ b/src/containers/A_monitor/styles.css @@ -528,10 +528,9 @@ tr:first-child { .item-to-show { padding: 20px 0; } -/* .item-to-show .ant-select-dropdown { - min-width: none !important; - width: 70px !important; -} */ +.item-to-show .ant-select-selector { + border-radius: 6px !important; +} .item-to-show > span { font-weight: 600; From 05cbba3481fbe8e348ffbf5b5038c277b07adf93 Mon Sep 17 00:00:00 2001 From: ThuanLe Date: Fri, 3 Mar 2023 16:54:19 +0700 Subject: [PATCH 14/78] correct no data message --- src/containers/A_monitor/otherpage.js | 4 ++-- src/containers/A_monitor/standbypage.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 590aea8..f90e87b 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -834,7 +834,7 @@ We use string sort function if value is one of the arrays else do second sort nu }> Dashboard - Standby Nodes + Other Nodes
    @@ -861,7 +861,7 @@ We use string sort function if value is one of the arrays else do second sort nu )} {whitelistedNodes.length === 0 && (
    -
    No Active Data Available!
    +
    No Other Data Available!
    )} diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index d554ce4..0fb4cca 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -846,7 +846,7 @@ We use string sort function if value is one of the arrays else do second sort nu )} {standByNodes.length === 0 && (
    -
    No Active Data Available!
    +
    No Standby Data Available!
    )} From 6c06a2832ef3a9ef731f937ec6ab8e05e0720b44 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 7 Mar 2023 16:26:24 +0000 Subject: [PATCH 15/78] Revert back to * for Good, fixed bug in DB cleanup --- backend python/thornode_collect_data_global.py | 2 +- src/containers/A_monitor/activepage.js | 4 ++-- src/containers/A_monitor/monitorpage.js | 4 ++-- src/containers/A_monitor/otherpage.js | 4 ++-- src/containers/A_monitor/standbypage.js | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/backend python/thornode_collect_data_global.py b/backend python/thornode_collect_data_global.py index 8d83950..2951958 100644 --- a/backend python/thornode_collect_data_global.py +++ b/backend python/thornode_collect_data_global.py @@ -95,7 +95,7 @@ def cleanUpDB(): return False toRemoveString = "'"+"', '".join(removeList)+"'" - query = "DELETE FROM noderunner.thornode_monitor where node_address IN {feild}".format( + query = "DELETE FROM noderunner.thornode_monitor where node_address IN {field}".format( field=toRemoveString) commitQuery(query) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 50ca738..16da343 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -434,8 +434,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} {item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'} - {item.rpc !== "null" ? 'Good' : 'Bad'} - {item.bifrost !== "null" ? 'Good' : 'Bad' } + {item.rpc !== "null" ? '*' : 'Bad'} + {item.bifrost !== "null" ? '*' : 'Bad' } {chains && <> diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index d799863..d3ea3a8 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -454,8 +454,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} {item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'} - {item.rpc !== "null" ? 'Good' : 'Bad'} - {item.bifrost !== "null" ? 'Good' : 'Bad' } + {item.rpc !== "null" ? '*' : 'Bad'} + {item.bifrost !== "null" ? '*' : 'Bad' } {chains && <> diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 41f804f..55fbbc5 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -438,8 +438,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} {item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'} - {item.rpc !== "null" ? 'Good' : 'Bad'} - {item.bifrost !== "null" ? 'Good' : 'Bad' } + {item.rpc !== "null" ? '*' : 'Bad'} + {item.bifrost !== "null" ? '*' : 'Bad' } {chains && <> diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index b27c7ef..a14b7ea 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -426,8 +426,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} {item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'} - {item.rpc !== "null" ? 'Good' : 'Bad'} - {item.bifrost !== "null" ? 'Good' : 'Bad' } + {item.rpc !== "null" ? '*' : 'Bad'} + {item.bifrost !== "null" ? '*' : 'Bad' } {chains && <> From 8f8b07c46629beb401ada740f776cadd31c2528e Mon Sep 17 00:00:00 2001 From: ThuanLe Date: Fri, 10 Mar 2023 23:18:18 +0700 Subject: [PATCH 16/78] Update table UI --- src/containers/A_monitor/activepage.js | 2 ++ src/containers/A_monitor/monitorpage.js | 2 ++ src/containers/A_monitor/otherpage.js | 2 ++ src/containers/A_monitor/standbypage.js | 2 ++ 4 files changed, 8 insertions(+) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 16da343..1acb740 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -361,6 +361,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai + @@ -393,6 +394,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {currentItems.map((item, index) => ( + + @@ -413,6 +414,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {currentItems.map((item, index) => ( + + @@ -397,6 +398,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {currentItems.map((item, index) => ( + + @@ -385,6 +386,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {currentItems.map((item, index) => ( + {currentItems.map((item, index) => ( - + {currentItems.map((item, index) => ( - + {currentItems.map((item, index) => ( - + {currentItems.map((item, index) => ( - + {currentItems.map((item, index) => ( - + - + - + - + ))} +
    clickSortHeader('node_address')}>Validator Nodes clickSortHeader('age')}>Age clickSortHeader('action')}>Action
    {index+1}
    clickSortHeader('node_address')}>Validator Nodes clickSortHeader('age')}>Age clickSortHeader('action')}>Action
    {index+1}
    clickSortHeader('node_address')}>Validator Nodes clickSortHeader('age')}>Age clickSortHeader('action')}>Action
    {index+1}
    clickSortHeader('node_address')}>Validator Nodes clickSortHeader('age')}>Age clickSortHeader('action')}>Action
    {index+1} Date: Fri, 10 Mar 2023 23:23:13 +0700 Subject: [PATCH 17/78] Update table UI --- src/containers/A_monitor/activepage.js | 3 +-- src/containers/A_monitor/monitorpage.js | 3 +-- src/containers/A_monitor/otherpage.js | 3 +-- src/containers/A_monitor/standbypage.js | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 1acb740..c885ef9 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -394,7 +394,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    {index+1}{index+1} copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {/* {`${item.node_address.substring(0, Math.min(9, item.node_address.length))}...`} */} {`...${item.node_address.substring(item.node_address.length - 5)}`} diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index b17081b..1347a64 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -414,7 +414,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    {index+1}{index+1} copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {/* {`${item.node_address.substring(0, Math.min(9, item.node_address.length))}...`} */} {`...${item.node_address.substring(item.node_address.length - 5)}`} diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 04ab925..7aa2c4b 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -398,7 +398,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    {index+1}{index+1} copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {/* {`${item.node_address.substring(0, Math.min(9, item.node_address.length))}...`} */} {`...${item.node_address.substring(item.node_address.length - 5)}`} diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index b683bfa..7f267b1 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -386,7 +386,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    {index+1}{index+1} copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {/* {`${item.node_address.substring(0, Math.min(9, item.node_address.length))}...`} */} {`...${item.node_address.substring(item.node_address.length - 5)}`} From 0e3f95785d84c344040c3c2ef165a400d7d30939 Mon Sep 17 00:00:00 2001 From: ThuanLe Date: Fri, 10 Mar 2023 23:35:30 +0700 Subject: [PATCH 18/78] Update table UI - limit width of number column --- src/containers/A_monitor/activepage.js | 2 +- src/containers/A_monitor/monitorpage.js | 2 +- src/containers/A_monitor/otherpage.js | 2 +- src/containers/A_monitor/standbypage.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index c885ef9..680d4df 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -394,7 +394,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    {index+1}{index+1} {currentItems.map((item, index) => (
    {index+1}{index+1} {currentItems.map((item, index) => (
    {index+1}{index+1} {currentItems.map((item, index) => (
    {index+1}{index+1} Date: Fri, 10 Mar 2023 23:45:56 +0700 Subject: [PATCH 19/78] Update table UI - add a line betwwen last row and the pagination --- src/containers/A_monitor/activepage.js | 1 + src/containers/A_monitor/monitorpage.js | 1 + src/containers/A_monitor/otherpage.js | 1 + src/containers/A_monitor/standbypage.js | 1 + 4 files changed, 4 insertions(+) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 680d4df..5ca3768 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -451,6 +451,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai }
    diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 80e8901..c4f0e4a 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -471,6 +471,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai } ))} + diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 363249f..9e98534 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -455,6 +455,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai } ))} + diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 232b85e..7ef63bd 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -443,6 +443,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai } ))} + From 34740b32391274d0273724721eaa7652e5206a3e Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Mon, 13 Mar 2023 09:06:20 +0000 Subject: [PATCH 20/78] Table updates Use last 4 char of addr and default to 100 items per page --- src/containers/A_monitor/activepage.js | 4 ++-- src/containers/A_monitor/monitorpage.js | 4 ++-- src/containers/A_monitor/otherpage.js | 4 ++-- src/containers/A_monitor/standbypage.js | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 5ca3768..e2f0838 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -289,7 +289,7 @@ const BondProviderPopOver = ({data}) => { const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { const [currentPage, setCurrentPage] = useState(1); - const [itemsPerPage, setItemsPerPage] = useState(25); + const [itemsPerPage, setItemsPerPage] = useState(100); const totalPages = Math.ceil(nodeData.length / itemsPerPage); const pageNumbers = []; @@ -402,7 +402,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai trigger="hover" > copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {`...${item.node_address.substring(item.node_address.length - 5)}`} + {`...${item.node_address.substring(item.node_address.length - 4)}`}
    diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index c4f0e4a..6d1c529 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -309,7 +309,7 @@ const BondProviderPopOver = ({data}) => { const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { const [currentPage, setCurrentPage] = useState(1); - const [itemsPerPage, setItemsPerPage] = useState(10); + const [itemsPerPage, setItemsPerPage] = useState(100); const totalPages = Math.ceil(nodeData.length / itemsPerPage); const pageNumbers = []; @@ -422,7 +422,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai trigger="hover" > copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {`...${item.node_address.substring(item.node_address.length - 5)}`} + {`...${item.node_address.substring(item.node_address.length - 4)}`}
    diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 9e98534..0f2bbda 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -293,7 +293,7 @@ const BondProviderPopOver = ({data}) => { const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { const [currentPage, setCurrentPage] = useState(1); - const [itemsPerPage, setItemsPerPage] = useState(25); + const [itemsPerPage, setItemsPerPage] = useState(100); const totalPages = Math.ceil(nodeData.length / itemsPerPage); const pageNumbers = []; @@ -406,7 +406,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai trigger="hover" > copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {`...${item.node_address.substring(item.node_address.length - 5)}`} + {`...${item.node_address.substring(item.node_address.length - 4)}`}
    diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 7ef63bd..750dc19 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -281,7 +281,7 @@ const BondProviderPopOver = ({data}) => { const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { const [currentPage, setCurrentPage] = useState(1); - const [itemsPerPage, setItemsPerPage] = useState(25); + const [itemsPerPage, setItemsPerPage] = useState(100); const totalPages = Math.ceil(nodeData.length / itemsPerPage); const pageNumbers = []; @@ -394,7 +394,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai trigger="hover" > copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {`...${item.node_address.substring(item.node_address.length - 5)}`} + {`...${item.node_address.substring(item.node_address.length - 4)}`}
    From 283d6f09299f9b7bdfc9c99512cb4b664f1be883 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Mon, 13 Mar 2023 14:34:24 +0000 Subject: [PATCH 21/78] Add isp logos --- src/assets/images/atandt.png | Bin 0 -> 19058 bytes src/assets/images/chartercoms.png | Bin 0 -> 69771 bytes src/assets/images/choopa.png | Bin 0 -> 125004 bytes src/assets/images/comcast.png | Bin 0 -> 35363 bytes src/assets/images/datacamp.png | Bin 0 -> 11332 bytes src/assets/images/leaseweb.png | Bin 0 -> 55099 bytes src/containers/A_monitor/activepage.js | 29 +++++++++++++++++++++++ src/containers/A_monitor/monitorpage.js | 29 +++++++++++++++++++++++ src/containers/A_monitor/otherpage.js | 29 +++++++++++++++++++++++ src/containers/A_monitor/standbypage.js | 30 ++++++++++++++++++++++++ 10 files changed, 117 insertions(+) create mode 100644 src/assets/images/atandt.png create mode 100644 src/assets/images/chartercoms.png create mode 100644 src/assets/images/choopa.png create mode 100644 src/assets/images/comcast.png create mode 100644 src/assets/images/datacamp.png create mode 100644 src/assets/images/leaseweb.png diff --git a/src/assets/images/atandt.png b/src/assets/images/atandt.png new file mode 100644 index 0000000000000000000000000000000000000000..d79bd82fb981c3407bb7bb1160a26a06e03b3a2c GIT binary patch literal 19058 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%0Ar-pn9 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/choopa.png b/src/assets/images/choopa.png new file mode 100644 index 0000000000000000000000000000000000000000..16af142da06edd05433a3a1701bc3d329269215a GIT binary patch literal 125004 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 literal 0 HcmV?d00001 diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index e2f0838..c057321 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -16,6 +16,12 @@ import imageGCP from '@iso/assets/images/gcp.png'; import imageAZURE from '@iso/assets/images/azure.png'; import imageHETZNER from '@iso/assets/images/hetzner.png'; import imageVULTR from '@iso/assets/images/vultr.png'; +import imageLeaseweb from '@iso/assets/images/leaseweb.png'; +import imageDatacamp from '@iso/assets/images/datacamp.png'; +import imageComcast from '@iso/assets/images/comcast.png'; +import imageChoopa from '@iso/assets/images/choopa.png'; +import imageChartercoms from '@iso/assets/images/chartercoms.png'; +import imageATandT from '@iso/assets/images/atandt.png'; import binance from '@iso/assets/images/binance.png'; import eth from '@iso/assets/images/eth.png'; @@ -261,6 +267,29 @@ const ReturnIspImage = ({isp}) => { return # } + if (isp ==='Leaseweb UK Limited'){ + return # + } + + if (isp ==='Datacamp Limited'){ + return # + } + + if (isp ==='Comcast Cable Communications, LLC'){ + return # + } + + if (isp ==='Choopa'){ + return # + } + + if (isp ==='Charter Communications Inc'){ + return # + } + + if (isp ==='AT&T Services, Inc.'){ + return # + } return '-' } diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 6d1c529..3fcf3a4 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -26,6 +26,12 @@ import imageGCP from '@iso/assets/images/gcp.png'; import imageAZURE from '@iso/assets/images/azure.png'; import imageHETZNER from '@iso/assets/images/hetzner.png'; import imageVULTR from '@iso/assets/images/vultr.png'; +import imageLeaseweb from '@iso/assets/images/leaseweb.png'; +import imageDatacamp from '@iso/assets/images/datacamp.png'; +import imageComcast from '@iso/assets/images/comcast.png'; +import imageChoopa from '@iso/assets/images/choopa.png'; +import imageChartercoms from '@iso/assets/images/chartercoms.png'; +import imageATandT from '@iso/assets/images/atandt.png'; import binance from '@iso/assets/images/binance.png'; import eth from '@iso/assets/images/eth.png'; @@ -281,6 +287,29 @@ const ReturnIspImage = ({isp}) => { return # } + if (isp ==='Leaseweb UK Limited'){ + return # + } + + if (isp ==='Datacamp Limited'){ + return # + } + + if (isp ==='Comcast Cable Communications, LLC'){ + return # + } + + if (isp ==='Choopa'){ + return # + } + + if (isp ==='Charter Communications Inc'){ + return # + } + + if (isp ==='AT&T Services, Inc.'){ + return # + } return '-' } diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 0f2bbda..e597fd2 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -19,6 +19,12 @@ import imageGCP from '@iso/assets/images/gcp.png'; import imageAZURE from '@iso/assets/images/azure.png'; import imageHETZNER from '@iso/assets/images/hetzner.png'; import imageVULTR from '@iso/assets/images/vultr.png'; +import imageLeaseweb from '@iso/assets/images/leaseweb.png'; +import imageDatacamp from '@iso/assets/images/datacamp.png'; +import imageComcast from '@iso/assets/images/comcast.png'; +import imageChoopa from '@iso/assets/images/choopa.png'; +import imageChartercoms from '@iso/assets/images/chartercoms.png'; +import imageATandT from '@iso/assets/images/atandt.png'; import binance from '@iso/assets/images/binance.png'; import eth from '@iso/assets/images/eth.png'; @@ -265,6 +271,29 @@ const ReturnIspImage = ({isp}) => { return # } + if (isp ==='Leaseweb UK Limited'){ + return # + } + + if (isp ==='Datacamp Limited'){ + return # + } + + if (isp ==='Comcast Cable Communications, LLC'){ + return # + } + + if (isp ==='Choopa'){ + return # + } + + if (isp ==='Charter Communications Inc'){ + return # + } + + if (isp ==='AT&T Services, Inc.'){ + return # + } return '-' } diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 750dc19..d2520ad 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -14,6 +14,13 @@ import imageGCP from '@iso/assets/images/gcp.png'; import imageAZURE from '@iso/assets/images/azure.png'; import imageHETZNER from '@iso/assets/images/hetzner.png'; import imageVULTR from '@iso/assets/images/vultr.png'; +import imageLeaseweb from '@iso/assets/images/leaseweb.png'; +import imageDatacamp from '@iso/assets/images/datacamp.png'; +import imageComcast from '@iso/assets/images/comcast.png'; +import imageChoopa from '@iso/assets/images/choopa.png'; +import imageChartercoms from '@iso/assets/images/chartercoms.png'; +import imageATandT from '@iso/assets/images/atandt.png'; + import binance from '@iso/assets/images/binance.png'; import eth from '@iso/assets/images/eth.png'; import bitcoin from '@iso/assets/images/bitcoin.png'; @@ -253,6 +260,29 @@ const ReturnIspImage = ({isp}) => { return # } + if (isp ==='Leaseweb UK Limited'){ + return # + } + + if (isp ==='Datacamp Limited'){ + return # + } + + if (isp ==='Comcast Cable Communications, LLC'){ + return # + } + + if (isp ==='Choopa'){ + return # + } + + if (isp ==='Charter Communications Inc'){ + return # + } + + if (isp ==='AT&T Services, Inc.'){ + return # + } return '-' } From fe16cf647bef825e9b8a521a18e42bf249d3c10c Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Mon, 13 Mar 2023 15:54:32 +0000 Subject: [PATCH 22/78] remove background on logos --- src/assets/images/chartercoms.png | Bin 69771 -> 53973 bytes src/assets/images/choopa.png | Bin 125004 -> 52836 bytes src/assets/images/comcast.png | Bin 35363 -> 28513 bytes src/assets/images/datacamp.png | Bin 11332 -> 11089 bytes src/assets/images/leaseweb.png | Bin 55099 -> 35191 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/assets/images/chartercoms.png b/src/assets/images/chartercoms.png index 4daee57f2746b02b907aab3532cb831be24744e3..c4641f0ba0954927d59a5d278df18e2dcf3dae3d 100644 GIT binary patch literal 53973 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%0Ar-pn9 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 diff --git a/src/assets/images/choopa.png b/src/assets/images/choopa.png index 16af142da06edd05433a3a1701bc3d329269215a..051ab8845772cb3f6a89f5ed4c70d5bed60ac857 100644 GIT binary patch literal 52836 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

    RK(ca1UdJOc_|o8XW}FiGY23K>!? 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 e*WTRyBL6R&5}tRyKQZ6{00000!g diff --git a/src/assets/images/comcast.png b/src/assets/images/comcast.png index 9d41fe191e1096696471674cf01723bea6cd0177..5cea70c5b45c502e402ca6eb7f281790cdd3c95a 100644 GIT binary patch literal 28513 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 U|@eU~}SyvPU?t~gl$OT^m_br(W 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 diff --git a/src/assets/images/datacamp.png b/src/assets/images/datacamp.png index e53812aa82ca0ae5dd556f528f426a3ddeb6c8f5..33e62e9b6997cf8e3e10c345660f3730dc51496d 100644 GIT binary patch literal 11089 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 E9}94>Qvd(} literal 11332 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⋙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∨jMPUr@ABP-~|NGv1CAYP*f z+U(T*#)NEjc-J#!6otuf9_)F2zK>>tzZq%t)SGrVAkr16{g1+kxlXhJ4I#m`b!K1D za7BMGmBxE+JDhfq6qfQBSezUVE!o((|GOt|IlXPR@A>oI{u=c@Em0IXNfj+Ypa?x; zB#I-T%GdZob?_GQ%@a6izH7KL`xo+T9X;dt6^yEgLwQdNvi)R=FBm^-!i{9qZ>}Bc zrv{L~_dnWAU(9hsA%OrOdOY`qwF4#^_u@Lz1sj6px z%?)B!z$LLW2AW9P*EiZ{6$W%5<{B^BW530jPGTbPo(Kf^VIT3sFlb*xFs{0SSrxWb zJf59rD}?d%CjLmCpIE(P5=L*R-eX=>Z0?HfYD==?LvSgZ7cXCzZ|+JhsFKn8=CvUt zn-2(vz`Ze)NeK!SbyAjOtB>O=1E2wAvqlQqe^%l(Q7N4NUf4f0g>v4`X23_udH}Ir zb2F2EpXw%DfrHVBj;?5GOo`Dnx-0%m=!N_!2b-DTU@=QCarrNH=+mq&sGB8PzAL(a ztj9gkPq;ab=I>BRIsW<>4fbK-MJ_G?w}K{DgFkXs=0hVoHw7!=hTY)sGMB8@y1bKx^`KgZYTJS2Ak11ESIbk?db-K^kZQS)@(DqB`MTY$rnDC#?d7x5K|Ue z?|IzvHquOexgDj;m>i=vKjK2! z0nYo&9}!%0bQYoEPkWuC9qeTCRM-q~!AqzO(?`u}#0cco4P#b$*yz1@a3E;&Z}f1w zDt_!3CWz_7*Z{a?t>E|w-2Ql2AmEID7Nxz`7n`WEsBz0^tpy{n?h?Yg@p}Ze<>rP= z{#xKrbccH$JM*x?Ad!b@6eNw-y+Fi7#6%fHYDJ9SBI8N-VF{g)4%n1%ElY)(Mj5>|1E2e|SxB3!jmMzYuEG*C}Xrsu=42kKzJw_6X^~MVu);H_f@oOC?mnVxWJ`%KBNuQkV z$-?t`3#Laq9=4p|J<>SYA^0xwvm-}@<_d|@TlwJS^&&UrQS(`OEM*z!y@b+7kN%K#hPY)fWu?@@t&m>;6S)fl-Wp;s`bZ3 z%ZGPLeVaV_iM{^|@437|w7Vzhk}$X*zc}d#H2}5S8;gP#kVDk%MO?xJ^~5X#eFtPg zfi2u00MtpoVw?;BT6}*NdO!{`~wK=w%w)!ze=nr?z%WGuspZR>HeEze}7 zm8QeKhXAvQ(CPiApBLqSq4l<|k*sriz+N_WR~`>5&*lZhM`7)yy-THiPxN5d1-{kG z>6BNB$+%SclE7LkE3$GSJD8l=FZ!Y6Yk}983pxQ<+F+UV8mZ|@{AXlsP@Z{ryf~I} zt8C3a$&Gd60Tb9It6$PX$xHOb5{BY`r;C1z|16L1jAh4=^edg_ zpqskK^UtxvUsqj5qLRx)Mh*`lho9<^^!E;F@dZofC7LAiTA%1L#? zrTAyKiTx5+6-}Uo`BN10<-p7|8ev>g+P0Ky+tG`+H`4xE?YF^l&nLMgeXI+(3Aaf; z^0Pj-`>?=A_x5&-Ioy8Etnit};v=Vxkd|XxRR0`g`qztd{@?X~wE)G&I&1l*cOam2 z#X+wa1$AZsB#P403*WgN<+MULwehrP9#w4B0%&=I(67|TD}1TzjYn>0Fe|deXZK5d zNGFYx_*)wGuAoIna^Uo54ia9(Tp9H#zx)Ciwl(v!-Dj3`|KiM8=zfrx%$b)NicJ?O zd<=e&?Tzz~SRKzaD_ya04Jpdl<8((A3U@>pd#Q}v{Bh!C_O18R%sDjs{_s^h~IxXVI zNn8#xQr=}57U)ZH&joFCl=d~vhXE83kfaYq+yd#I;_iN&Q7RXm$ zxG7BeS&?(UQVe{?h)X;3l=FM87cP;JdB1xRXGbCmmxsJ%lIlG_n15cZcY<3m!^7cK zzDtB^yS}L=#Zwb%wUN)>V{vDRv@GpwIz=OJQ$hXXV{XKV^UZdW zxsJ|rgjP`+PveSJw_2ps;PS=8(WwE|ksk;LsEi@WIVe|p0L<#g?nd<|X|jJHLZHlG z@uJp^8CaWi!??A97kS5PcFN)ima$sXM-P)JDBIy))c0g)BJv~GA%qx>#?a@VUWjoi zehKvdhEJkjc(eGSIl&nFUoSvJp%G^a&rO8yd4Hi%y2e*5FmR~X-RgQ($P{1L2 zKl11GzU>kepb_pUpiW&XAnATTJGz3O4ZK@$HM&<<+Scqch(7bSE+%SR?@*7&3jB@zxHP9Z@cXkP5uL3XET4`Rnhoe*UYP?tal;uBeo&%O76&RTbSr|o zsd71h%7Q&>IKcA`IGea||0WN_=t}(Pqr|DjFPDPe%AUmYtbd@7+542&y6=$Y*Rf_N zNe{}5fBdxlQ;O(4IX*)Ip5ed&n2CvhzD~Ibej0m45z?4ERFOxw{hnEEcRn|iCA4)w zf4>VWAEBT8uw}Qh7HO`(5;(fQ5~QYNAaOY%uKKW>mdJ;eq`FV3GUvf44e9)_PBeLx zq|11PVUi^0IryppNGp>O>XQO6sDhLRRpJLZ$igRnzt#W_uyT{ZsaF69;Js)99A#b9 z#wDDTXQiwcd{gd00rc7)ye0S$E`NgY?MgPU?ts#oT?k*@4Ar7-Z~4Gyqx!(h3>Aqf z_bXvViJqE{B$2)LEg8}b2QGl%sI^xR+4hR7WXuimUUlkx#10%x_&wI5N}ThT2cl0H zg%s9Zd8My{Iq`8*qw(%D>G=?vU7yO384axy8!r8XxP&SuT?v5+Xe295(arAzBi#?y z;v$29h;Q9VZNzxfsgpMg3tsqe+P*Ho1@${FwLf-O$=`P&sXD4-a})c# zOA(nNeQ42k@fjg^q6gX+^(Pm@yG`86xME*~tk{SK;OnON2_=}psj8%Cg#=^pbC7ZV zwxH%=WN`N~U8Qb!~0(^r^av_DTN}y{PJKbKt7lMp7D*haO4^w1o}*5 z$}KgVZ=pK391_rHL?Q#Xp?NZb z2J?c;bFs0P*lY{NhvRv&tvac)vRQZv)XKo>pkO@#R;+)HOTP2=UpH`PjuoKF)$nFx zZCN^)QK!qtn~}E1WzecTlk+y#ot7B9M{8}5eoQsd{cWs0Hz4;%JM!Y)QC1;w#JhpC z_#zU231b0w00?+Z`k5`icu=NC^P*t~{C%q3sCBMl@u4D;8RH=Li3t zp#<7rbe7Y7C+69IDCo9XS?l-sIMrFotco@;g�=jU=PZJb1u|al~93n%@)q^jzzs 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 z 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 From b8e82fba0757f24e9e02cb9aa38baaeb0755cedd Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Mon, 13 Mar 2023 15:55:51 +0000 Subject: [PATCH 23/78] remove At&T background --- src/assets/images/atandt.png | Bin 19058 -> 23613 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/assets/images/atandt.png b/src/assets/images/atandt.png index d79bd82fb981c3407bb7bb1160a26a06e03b3a2c..8b7576c0f22de01b1fbd8f4a8e4372ecbbb73fcd 100644 GIT binary patch literal 23613 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 literal 19058 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 Date: Tue, 21 Mar 2023 16:06:38 +0000 Subject: [PATCH 24/78] Add zenlayer logo --- src/assets/images/zenlayer.png | Bin 0 -> 10796 bytes src/containers/A_monitor/activepage.js | 5 +++++ src/containers/A_monitor/monitorpage.js | 5 +++++ src/containers/A_monitor/otherpage.js | 5 +++++ src/containers/A_monitor/standbypage.js | 5 +++++ 5 files changed, 20 insertions(+) create mode 100644 src/assets/images/zenlayer.png diff --git a/src/assets/images/zenlayer.png b/src/assets/images/zenlayer.png new file mode 100644 index 0000000000000000000000000000000000000000..e54e33bc7a57c67fe629d4eef20169a683026787 GIT binary patch literal 10796 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 literal 0 HcmV?d00001 diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index c057321..3bc4388 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -22,6 +22,7 @@ import imageComcast from '@iso/assets/images/comcast.png'; import imageChoopa from '@iso/assets/images/choopa.png'; import imageChartercoms from '@iso/assets/images/chartercoms.png'; import imageATandT from '@iso/assets/images/atandt.png'; +import imageZenlayer from '@iso/assets/images/zenlayer.png'; import binance from '@iso/assets/images/binance.png'; import eth from '@iso/assets/images/eth.png'; @@ -290,6 +291,10 @@ const ReturnIspImage = ({isp}) => { if (isp ==='AT&T Services, Inc.'){ return # } + + if (isp ==='Zenlayer Inc'){ + return # + } return '-' } diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 3fcf3a4..cf8536d 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -32,6 +32,7 @@ import imageComcast from '@iso/assets/images/comcast.png'; import imageChoopa from '@iso/assets/images/choopa.png'; import imageChartercoms from '@iso/assets/images/chartercoms.png'; import imageATandT from '@iso/assets/images/atandt.png'; +import imageZenlayer from '@iso/assets/images/zenlayer.png'; import binance from '@iso/assets/images/binance.png'; import eth from '@iso/assets/images/eth.png'; @@ -311,6 +312,10 @@ const ReturnIspImage = ({isp}) => { return # } + if (isp ==='Zenlayer Inc'){ + return # + } + return '-' } diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index e597fd2..ae9da26 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -25,6 +25,7 @@ import imageComcast from '@iso/assets/images/comcast.png'; import imageChoopa from '@iso/assets/images/choopa.png'; import imageChartercoms from '@iso/assets/images/chartercoms.png'; import imageATandT from '@iso/assets/images/atandt.png'; +import imageZenlayer from '@iso/assets/images/zenlayer.png'; import binance from '@iso/assets/images/binance.png'; import eth from '@iso/assets/images/eth.png'; @@ -294,6 +295,10 @@ const ReturnIspImage = ({isp}) => { if (isp ==='AT&T Services, Inc.'){ return # } + + if (isp ==='Zenlayer Inc'){ + return # + } return '-' } diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index d2520ad..943e88d 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -20,6 +20,7 @@ import imageComcast from '@iso/assets/images/comcast.png'; import imageChoopa from '@iso/assets/images/choopa.png'; import imageChartercoms from '@iso/assets/images/chartercoms.png'; import imageATandT from '@iso/assets/images/atandt.png'; +import imageZenlayer from '@iso/assets/images/zenlayer.png'; import binance from '@iso/assets/images/binance.png'; import eth from '@iso/assets/images/eth.png'; @@ -283,6 +284,10 @@ const ReturnIspImage = ({isp}) => { if (isp ==='AT&T Services, Inc.'){ return # } + + if (isp ==='Zenlayer Inc'){ + return # + } return '-' } From bda468169be37a4068150521dd9ff9b680ec3688 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 11 Apr 2023 09:08:03 +0100 Subject: [PATCH 25/78] Add backend function to grab the max effective bond --- .../thornode_collect_data_global.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/backend python/thornode_collect_data_global.py b/backend python/thornode_collect_data_global.py index 2951958..adc76c9 100644 --- a/backend python/thornode_collect_data_global.py +++ b/backend python/thornode_collect_data_global.py @@ -1,8 +1,6 @@ -import time - import requests import json -import random +import math import datetime from common import getDB, commitQuery, grabQuery @@ -75,6 +73,21 @@ def checkRetiringVaults(): commitQuery(query) return areWeRetiring +def grabMaxEffectiveBond(): + """ + grabMaxEffectiveStake used to calculate and update the max effective bond + + :return maxBond: returns the current maxEffectiveBond + """ + response_API = requests.get('https://thornode.ninerealms.com/thorchain/nodes') + data = json.loads(response_API.text) + nodes = sorted([int(x['total_bond']) for x in data if "Active" == x['status']]) + position = math.ceil((len(nodes)+1)*2/3) + maxBond = nodes[position] + query = "UPDATE noderunner.thornode_monitor_global SET maxEffectiveStake = '{field}' WHERE primary_key = 1;".format(field=int(maxBond)) + commitQuery(query) + return maxBond + def cleanUpDB(): """ cleanUpDB purges our DB of nodes they are no longer present From 3bf3fe84c2e2ff4349f78ac048751628e760d91c Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 11 Apr 2023 10:08:02 +0100 Subject: [PATCH 26/78] Add maxEffectiveStake to UI --- backend python/thornode_collect_data_global.py | 4 +++- src/containers/A_monitor/activepage.js | 7 +++++++ src/containers/A_monitor/monitorpage.js | 7 +++++++ src/containers/A_monitor/otherpage.js | 7 +++++++ src/containers/A_monitor/standbypage.js | 7 +++++++ src/containers/A_monitor/styles.css | 6 +++--- 6 files changed, 34 insertions(+), 4 deletions(-) diff --git a/backend python/thornode_collect_data_global.py b/backend python/thornode_collect_data_global.py index adc76c9..7a16689 100644 --- a/backend python/thornode_collect_data_global.py +++ b/backend python/thornode_collect_data_global.py @@ -158,5 +158,7 @@ def collectDataGlobal(): # Clean up any old nodes from the database cleaned = cleanUpDB() - print(str(secondsPerBlock),str(getCoinGeckoInfo),str(lastChurn),str(retiringVault),str(cleaned)) + maxBond = grabMaxEffectiveBond() + + print(str(secondsPerBlock),str(getCoinGeckoInfo),str(lastChurn),str(retiringVault),str(cleaned), str(maxBond)) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 3bc4388..db093a1 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -194,6 +194,13 @@ const GlobalData = ({ globalData, animateBlockCount, state}) => {

    +
    + # +
    +
    MAX EFFECTIVE BOND
    +
    ᚱ{parseInt(globalData.maxEffectiveStake/100000000).toLocaleString()}
    +
    +
    ) } diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index cf8536d..9c89c5f 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -215,6 +215,13 @@ const GlobalData = ({ globalData, animateBlockCount, state}) => {
    ${globalData?.coingecko?.total_volume?.toLocaleString()}
    +
    + # +
    +
    MAX EFFECTIVE BOND
    +
    ᚱ{parseInt(globalData.maxEffectiveStake/100000000).toLocaleString()}
    +
    +
    ) } diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index ae9da26..e0e4c99 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -199,6 +199,13 @@ const GlobalData = ({ globalData, animateBlockCount, state}) => {
    ${globalData?.coingecko?.total_volume?.toLocaleString()}
    +
    + # +
    +
    MAX EFFECTIVE BOND
    +
    ᚱ{parseInt(globalData.maxEffectiveStake/100000000).toLocaleString()}
    +
    +
    ) } diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 943e88d..d740d27 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -188,6 +188,13 @@ const GlobalData = ({ globalData, animateBlockCount, state}) => {
    ${globalData?.coingecko?.total_volume?.toLocaleString()}
    +
    + # +
    +
    MAX EFFECTIVE BOND
    +
    ᚱ{parseInt(globalData.maxEffectiveStake/100000000).toLocaleString()}
    +
    +
    ) } diff --git a/src/containers/A_monitor/styles.css b/src/containers/A_monitor/styles.css index 99894e7..e3efbdd 100644 --- a/src/containers/A_monitor/styles.css +++ b/src/containers/A_monitor/styles.css @@ -50,13 +50,13 @@ td { padding-bottom: 28px; } .overview-list { - column-count: 5; + column-count: 6; background: linear-gradient(269.82deg, #FFFFFF -20.26%, #FFFFFF 99.82%); opacity: 0.8; border-radius: 10px; - padding: 36px 40px 0; + padding: 36px 40px 10px; filter: drop-shadow(0px 4px 10px rgba(0, 0, 0, 0.1)); - max-width: 1180px; + max-width: 1880px; margin: auto; } From 89621779f1c0e64afc3deb230aa143d405e0fa00 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 11 Apr 2023 11:37:15 +0100 Subject: [PATCH 27/78] Centre everything and reduce min widths --- src/containers/A_monitor/activepage.js | 26 ++++++++--------- src/containers/A_monitor/monitorpage.js | 39 ++++++++++++------------- src/containers/A_monitor/otherpage.js | 30 +++++++++---------- src/containers/A_monitor/standbypage.js | 30 +++++++++---------- 4 files changed, 62 insertions(+), 63 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index db093a1..390a723 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -403,14 +403,14 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai - clickSortHeader('node_address')}>Validator Nodes - clickSortHeader('age')}>Age + clickSortHeader('node_address')}>Validator Nodes + clickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP - clickSortHeader('location')}>Location - clickSortHeader('bond')}>Bond + clickSortHeader('location')}>Location + clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers - clickSortHeader('current_award')}>Rewards + clickSortHeader('current_award')}>Rewards clickSortHeader('apy')}>APY clickSortHeader('slash_points')}>Slashes clickSortHeader('score')}>Score @@ -436,7 +436,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {currentItems.map((item, index) => ( {index+1} - + - {item.age.toFixed(2)} + {item.age.toFixed(2)} {item.action}

    RK(ca1UdJOc_|o8XW}FiGY23K>!? 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 e*WTRyBL6R&5}tRyKQZ6{00000!g literal 0 HcmV?d00001 diff --git a/src/assets/images/comcast.png b/src/assets/images/comcast.png new file mode 100644 index 0000000000000000000000000000000000000000..9d41fe191e1096696471674cf01723bea6cd0177 GIT binary patch literal 35363 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 U|@eU~}SyvPU?t~gl$OT^m_br(W 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/datacamp.png b/src/assets/images/datacamp.png new file mode 100644 index 0000000000000000000000000000000000000000..e53812aa82ca0ae5dd556f528f426a3ddeb6c8f5 GIT binary patch literal 11332 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⋙1(R}>rXkm)VBdke!;*&d5L$DKieYq?06q^@aKYO+LnYB zn&r`i?_E^fW@O`EIVNr+kzHPTw)6eWS4jYR^Bs*O9`bL`V$&t|aSe*;HT?7QPOD)uY3no5m!c3Af zNat(+LmeNZ0b<VG#N{d*6%8b7^PeR`zR|9N$l6S% z;!uA++897o5LvFHt7gQ1Z>-XgpK9$#;Dg3?>C(l)Mkoysa{B^IU;fWausyc zZD_+I%HUdd{YzUX!GyWJWO&5CPh?xF3Us7gGNU+kQx%ENll7JC_mjP6s)Wp%oKe-U zOGYc_T(m+_71*4R*jYW<*H430+zF>E8&oF8+=2ptKWnZesR z?R`R+OnI%##FQwQ@f5N`O`;2g#lfK1aXqe-vjq4&-p3xFnds^pric(+T#q7R!mVgV zG-%?iL2-i2*I1%Bdr_S{e72?t4+{bmx3B~UIdoof$q1nq7Z-z9`R#|6H2f(ly6otO z%SpY<4IE6&e3|8GTKL5~x$#+sGR=Wzc*p10l1*khQx0`BMjYH#g~lc@&U+iCUyDcx zJf%#}ZzH2`L8YbNSz>%^D#2ezc*yhUG04WyNrLUB4ut(YsceYv^leLcO~%Z=WCw4R zs>2!B3JSB&O z&|s8fw38B2cd2Y{`oc@|o-QBl^+5uj&_@|vmaOa|qyj)Gu&2lEEqVLKUC-=_kmrp`3}E^9@NF<@AWaJ6%%Zav zD^T|j%lf;42#G;drK;Nt*z@_d+`!4v* z9rRg+UvG*XGFZL=;p2#sG*D6~QEa;#h%8fb<;iiegV_80izl3~BpsM_fn$8?(o?PQ zvAAGd`QR9X8*_bsjaO(ZxNYt~&<6+w6(*}~r~cCU?0mFcHDi8zdcEo%ic)WY4cE&R z+`AU+Tv?7@X`xtyzwY~-6g-yY%i0($yy9!(#ybFD`J*MgreUq7oa)*Ucxa-!c2z`P zRde|x_p1g!@b083K(bq)QidLrE~H>BJSJkX0^U<76G$dVy%N{A7};JnI;04p>>`Mk zIeqv&aqhQv{+~QT!@}BqEzHA0E=I0+flZM5+D`)2RqE=0s+5vLm0s#EBmbYPv?N}A aM(jb3C3NGKu74??1ymF?$5K*K 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∨jMPUr@ABP-~|NGv1CAYP*f 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�=jU=PZJb1u|al~93n%@)q^jzzs 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 z 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

    - {item.location} - ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} + {item.location} + ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } title={'Bond Providers'} @@ -469,11 +469,11 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai >{item.bond_providers.providers.length} - ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()} - {item.apy} + ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()} + {item.apy} {parseInt(item.slash_points).toLocaleString()} - {item.score} - {item.version} + {item.score} + {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} {item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'} {item.rpc !== "null" ? '*' : 'Bad'} diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 9c89c5f..0976e02 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -150,8 +150,7 @@ const Icons = ({address, ip_address, addToFav, whichHeart}) => { copyToClipWithPopup('IP Copied to clipboard:', ip_address)}> {/* */} - - + @@ -295,7 +294,7 @@ const ReturnIspImage = ({isp}) => { return # } - if (isp ==='Leaseweb UK Limited'){ + if (isp ==='Leaseweb UK Limited' || isp === 'Leaseweb USA, Inc.'){ return # } @@ -421,16 +420,16 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    - + - - + + - - - - + + + + @@ -455,8 +454,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {currentItems.map((item, index) => ( - - + - + - - + + - - + + - - + + {/* */} @@ -1040,4 +1039,4 @@ We use string sort function if value is one of the arrays else do second sort nu ); } -} +} \ No newline at end of file diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index e0e4c99..9226fed 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -279,7 +279,7 @@ const ReturnIspImage = ({isp}) => { return # } - if (isp ==='Leaseweb UK Limited'){ + if (isp ==='Leaseweb UK Limited' || isp === 'Leaseweb USA, Inc.'){ return # } @@ -405,16 +405,16 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>Rewards clickSortHeader('apy')}>APY clickSortHeader('slash_points')}>Slashes clickSortHeader('score')}>Score
    {index+1} + {index+1} {item.age.toFixed(2)}{item.age.toFixed(2)} {item.action} {item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()}{item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } title={'Bond Providers'} @@ -489,11 +488,11 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai >{item.bond_providers.providers.length} ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy} {parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}{item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'} {item.rpc !== "null" ? '*' : 'Bad'}
    - + - - + + - - + + - + @@ -440,7 +440,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {currentItems.map((item, index) => ( - - + - - + + - - + + - - + + {/* */} diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index d740d27..66d6eee 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -268,7 +268,7 @@ const ReturnIspImage = ({isp}) => { return # } - if (isp ==='Leaseweb UK Limited'){ + if (isp ==='Leaseweb UK Limited' || isp === 'Leaseweb USA, Inc.'){ return # } @@ -394,16 +394,16 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('location')}>LocationclickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('current_award')}>Rewards clickSortHeader('apy')}>APY clickSortHeader('slash_points')}>Slashes clickSortHeader('score')}>Score
    {index+1} + {item.age.toFixed(2)}{item.age.toFixed(2)} {item.action} {item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()}{item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } title={'Bond Providers'} @@ -473,11 +473,11 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai >{item.bond_providers.providers.length} ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy} {parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}{item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'} {item.rpc !== "null" ? '*' : 'Bad'}
    - + - - + + - - + + - + @@ -429,7 +429,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {currentItems.map((item, index) => ( - - + - - + + - - + + - - + + {/* */} From 8e4e4a03bb06c23d498a9ef9900b865fcdcdce00 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 11 Apr 2023 13:32:45 +0100 Subject: [PATCH 28/78] Fix case sensitive search --- src/containers/A_monitor/activepage.js | 2 +- src/containers/A_monitor/monitorpage.js | 2 +- src/containers/A_monitor/otherpage.js | 2 +- src/containers/A_monitor/standbypage.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 390a723..bfeb231 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -840,7 +840,7 @@ We use string sort function if value is one of the arrays else do second sort nu
    this.setState({ searchTerm: event.target.value.trim()},()=>this.setData())} + onChange={(event) => this.setState({ searchTerm: event.target.value.trim().toLowerCase()},()=>this.setData())} prefix={} />
    diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 0976e02..32117d3 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -863,7 +863,7 @@ We use string sort function if value is one of the arrays else do second sort nu
    this.setState({ searchTerm: event.target.value.trim()},()=>this.setData())} + onChange={(event) => this.setState({ searchTerm: event.target.value.trim().toLowerCase()},()=>this.setData())} prefix={} />
    diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 9226fed..4b6e436 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -841,7 +841,7 @@ We use string sort function if value is one of the arrays else do second sort nu
    this.setState({ searchTerm: event.target.value.trim()},()=>this.setData())} + onChange={(event) => this.setState({ searchTerm: event.target.value.trim().toLowerCase()},()=>this.setData())} prefix={} />
    diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 66d6eee..49a7695 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -827,7 +827,7 @@ We use string sort function if value is one of the arrays else do second sort nu
    this.setState({ searchTerm: event.target.value.trim()},()=>this.setData())} + onChange={(event) => this.setState({ searchTerm: event.target.value.trim().toLowerCase()},()=>this.setData())} prefix={} />
    From 7f941eefeaa2cddf206bbcc87d0210b5359bd5f3 Mon Sep 17 00:00:00 2001 From: Thuan Le Date: Wed, 12 Apr 2023 21:59:38 +0700 Subject: [PATCH 29/78] add sort icon --- src/assets/images/overview/sort.svg | 11 ++++++ src/containers/A_monitor/activepage.js | 36 +++++++++++-------- src/containers/A_monitor/monitorpage.js | 46 +++++++++++++++---------- src/containers/A_monitor/otherpage.js | 36 +++++++++++-------- src/containers/A_monitor/standbypage.js | 37 ++++++++++++-------- src/containers/A_monitor/styles.css | 11 ++++++ 6 files changed, 114 insertions(+), 63 deletions(-) create mode 100644 src/assets/images/overview/sort.svg diff --git a/src/assets/images/overview/sort.svg b/src/assets/images/overview/sort.svg new file mode 100644 index 0000000..3326ca5 --- /dev/null +++ b/src/assets/images/overview/sort.svg @@ -0,0 +1,11 @@ + + + + + + + + \ No newline at end of file diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index bfeb231..ddb734e 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -52,6 +52,7 @@ import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; import powerIcon from '@iso/assets/images/overview/power.svg'; import activeIcon from '@iso/assets/images/overview/active_icon.svg'; +import sortIcon from '@iso/assets/images/overview/sort.svg'; import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; @@ -92,6 +93,11 @@ function popUpModal(msg, ip) { }); } +const SortIcon = ({sortBy, column}) => { + if (sortBy == column) return + return null +} + const Icons = ({address, ip_address, addToFav, whichHeart}) => { const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}` const secondURL = `https://viewblock.io/thorchain/address/${address}` @@ -328,7 +334,7 @@ const BondProviderPopOver = ({data}) => { return d } -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { +const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = ''}) => { const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(100); @@ -403,19 +409,19 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -899,7 +905,7 @@ We use string sort function if value is one of the arrays else do second sort nu {activeNodes.length > 0 && ( - + )} {activeNodes.length === 0 && (
    diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 32117d3..4c89604 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -63,6 +63,7 @@ import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; import powerIcon from '@iso/assets/images/overview/power.svg'; import activeIcon from '@iso/assets/images/overview/active_icon.svg'; +import sortIcon from '@iso/assets/images/overview/sort.svg'; import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; @@ -106,6 +107,11 @@ function popUpModal(msg, ip) { }); } +const SortIcon = ({sortBy, column}) => { + if (sortBy == column) return + return null +} + const Icons = ({address, ip_address, addToFav, whichHeart}) => { const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}` const secondURL = `https://viewblock.io/thorchain/address/${address}` @@ -347,7 +353,7 @@ const BondProviderPopOver = ({data}) => { return d } -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { +const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = ''}) => { const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(100); @@ -422,19 +428,19 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -585,7 +591,7 @@ export default class extends Component { } if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') { - console.log('DEV ONLY: Refresh Data Results: ', data) + // console.log('DEV ONLY: Refresh Data Results: ', data) } @@ -846,7 +852,11 @@ We use string sort function if value is one of the arrays else do second sort nu clickSortHeader(item){ const direction = this.state.sortBy !== item ? 'desc' : this.state.sortDirection === 'desc' ? 'asc' : 'desc'; + console.log(' ===============> : sortBy - sortDirection - direction ::: ', this.state.sortBy, this.state.sortDirection, direction); this.setState({sortBy: item, sortDirection: direction}, ()=> this.setData()) + window.setTimeout(()=> { + console.log(' ===============> : ', this.state.sortBy); + }, 200) } sortColour(item) { @@ -955,7 +965,7 @@ We use string sort function if value is one of the arrays else do second sort nu {activeNodes.length > 0 && ( - + )} {activeNodes.length === 0 && (
    @@ -986,7 +996,7 @@ We use string sort function if value is one of the arrays else do second sort nu
    {standByNodes.length > 0 && ( - + )} {standByNodes.length === 0 && (
    @@ -1016,7 +1026,7 @@ We use string sort function if value is one of the arrays else do second sort nu
    {whitelistedNodes.length > 0 && ( - + )} {whitelistedNodes.length === 0 && (
    diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 4b6e436..f12cb80 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -55,6 +55,7 @@ import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; import powerIcon from '@iso/assets/images/overview/power.svg'; import activeIcon from '@iso/assets/images/overview/active_icon.svg'; +import sortIcon from '@iso/assets/images/overview/sort.svg'; import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; @@ -96,6 +97,11 @@ function popUpModal(msg, ip) { }); } +const SortIcon = ({sortBy, column}) => { + if (sortBy == column) return + return null +} + const Icons = ({address, ip_address, addToFav, whichHeart}) => { const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}` const secondURL = `https://viewblock.io/thorchain/address/${address}` @@ -332,7 +338,7 @@ const BondProviderPopOver = ({data}) => { return d } -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { +const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = ''}) => { const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(100); @@ -407,19 +413,19 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -900,7 +906,7 @@ We use string sort function if value is one of the arrays else do second sort nu {whitelistedNodes.length > 0 && ( - + )} {whitelistedNodes.length === 0 && (
    diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 49a7695..92ac022 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -48,6 +48,7 @@ import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; import powerIcon from '@iso/assets/images/overview/power.svg'; import activeIcon from '@iso/assets/images/overview/active_icon.svg'; import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; +import sortIcon from '@iso/assets/images/overview/sort.svg'; const leaveIcon = @@ -87,6 +88,12 @@ function popUpModal(msg, ip) { }); } +const SortIcon = ({sortBy, column}) => { + console.log(' ===============> sortBy, column: ', sortBy, column); + if (sortBy == column) return + return null +} + const Icons = ({address, ip_address, addToFav, whichHeart}) => { const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}` const secondURL = `https://viewblock.io/thorchain/address/${address}` @@ -321,7 +328,7 @@ const BondProviderPopOver = ({data}) => { return d } -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}}) => { +const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = ''}) => { const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(100); @@ -396,19 +403,19 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -886,7 +893,7 @@ We use string sort function if value is one of the arrays else do second sort nu {standByNodes.length > 0 && ( - + )} {standByNodes.length === 0 && (
    diff --git a/src/containers/A_monitor/styles.css b/src/containers/A_monitor/styles.css index e3efbdd..e3a3724 100644 --- a/src/containers/A_monitor/styles.css +++ b/src/containers/A_monitor/styles.css @@ -41,10 +41,21 @@ td { color: #1C39BB } +.tableHeader span{ + position: relative; +} + .tableHeader:hover { color: #004d59 } +.tableHeader span .sort-icon{ + position: absolute; + top: 50%; + right: -5px; + transform: translate(100%, -50%); +} + .overview-list-wrapper { border-bottom: 1px solid #1C39BB; padding-bottom: 28px; From dada0272c76f98b819e2b5bf656fad9f04e3122a Mon Sep 17 00:00:00 2001 From: Thuan Le Date: Wed, 12 Apr 2023 22:39:32 +0700 Subject: [PATCH 30/78] increase layout min-width --- src/containers/A_monitor/styles.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/containers/A_monitor/styles.css b/src/containers/A_monitor/styles.css index e3a3724..f01df2a 100644 --- a/src/containers/A_monitor/styles.css +++ b/src/containers/A_monitor/styles.css @@ -4,7 +4,7 @@ } .ant-layout { min-height: 100%; - min-width: 1680px; + min-width: 1920px; } body { font-family: monospace!important; From ef20d3ee60626ad6b8ee051123bd676c174f318a Mon Sep 17 00:00:00 2001 From: Thuan Le Date: Sat, 15 Apr 2023 07:59:43 +0700 Subject: [PATCH 31/78] update sort icon --- src/assets/images/overview/arrow-down.svg | 8 ++++ src/containers/A_monitor/activepage.js | 45 +++++++++++---------- src/containers/A_monitor/monitorpage.js | 49 ++++++++++++----------- src/containers/A_monitor/otherpage.js | 45 +++++++++++---------- src/containers/A_monitor/standbypage.js | 46 +++++++++++---------- src/containers/A_monitor/styles.css | 7 +++- 6 files changed, 112 insertions(+), 88 deletions(-) create mode 100644 src/assets/images/overview/arrow-down.svg diff --git a/src/assets/images/overview/arrow-down.svg b/src/assets/images/overview/arrow-down.svg new file mode 100644 index 0000000..54cad1a --- /dev/null +++ b/src/assets/images/overview/arrow-down.svg @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index ddb734e..41d2011 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -52,7 +52,7 @@ import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; import powerIcon from '@iso/assets/images/overview/power.svg'; import activeIcon from '@iso/assets/images/overview/active_icon.svg'; -import sortIcon from '@iso/assets/images/overview/sort.svg'; +import arrowDownIcon from '@iso/assets/images/overview/arrow-down.svg'; import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; @@ -93,8 +93,11 @@ function popUpModal(msg, ip) { }); } -const SortIcon = ({sortBy, column}) => { - if (sortBy == column) return +const SortIcon = ({ sortBy, column, sortDirection }) => { + const direction = sortBy !== column ? 'asc' : sortDirection === 'asc' ? 'desc' : 'asc'; + if (sortBy == column) { + return + } return null } @@ -334,7 +337,7 @@ const BondProviderPopOver = ({data}) => { return d } -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = ''}) => { +const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = '', sortDirection = ''}) => { const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(100); @@ -408,22 +411,22 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('location')}>LocationclickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('current_award')}>Rewards clickSortHeader('apy')}>APY clickSortHeader('slash_points')}>Slashes clickSortHeader('score')}>Score
    {index+1} + {item.age.toFixed(2)}{item.age.toFixed(2)} {item.action} {item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()}{item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } title={'Bond Providers'} @@ -462,11 +462,11 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai >{item.bond_providers.providers.length} ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy} {parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}{item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'} {item.rpc !== "null" ? '*' : 'Bad'}
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon}clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon} RPC BFR
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon}clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon} RPC BFR
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon}clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon} RPC BFR
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon}clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon} RPC BFR
    - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + {chains && <> @@ -905,7 +908,7 @@ We use string sort function if value is one of the arrays else do second sort nu {activeNodes.length > 0 && ( - + )} {activeNodes.length === 0 && (
    diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 4c89604..0afe6c5 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -63,7 +63,7 @@ import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; import powerIcon from '@iso/assets/images/overview/power.svg'; import activeIcon from '@iso/assets/images/overview/active_icon.svg'; -import sortIcon from '@iso/assets/images/overview/sort.svg'; +import arrowDownIcon from '@iso/assets/images/overview/arrow-down.svg'; import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; @@ -107,8 +107,11 @@ function popUpModal(msg, ip) { }); } -const SortIcon = ({sortBy, column}) => { - if (sortBy == column) return +const SortIcon = ({ sortBy, column, sortDirection }) => { + const direction = sortBy !== column ? 'asc' : sortDirection === 'asc' ? 'desc' : 'asc'; + if (sortBy == column) { + return + } return null } @@ -353,7 +356,7 @@ const BondProviderPopOver = ({data}) => { return d } -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = ''}) => { +const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = '', sortDirection = ''}) => { const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(100); @@ -427,22 +430,22 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon}RPCBFR clickSortHeader('node_address')}>Validator Nodes clickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards clickSortHeader('apy')}>APY clickSortHeader('slash_points')}>Slashes clickSortHeader('score')}>Score clickSortHeader('version')}>Version clickSortHeader('leave')}>{leaveIcon}RPCBFR
    - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + {chains && <> @@ -965,7 +968,7 @@ We use string sort function if value is one of the arrays else do second sort nu {activeNodes.length > 0 && ( - + )} {activeNodes.length === 0 && (
    @@ -996,7 +999,7 @@ We use string sort function if value is one of the arrays else do second sort nu
    {standByNodes.length > 0 && ( - + )} {standByNodes.length === 0 && (
    @@ -1026,7 +1029,7 @@ We use string sort function if value is one of the arrays else do second sort nu
    {whitelistedNodes.length > 0 && ( - + )} {whitelistedNodes.length === 0 && (
    diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index f12cb80..af400e0 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -55,7 +55,7 @@ import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; import powerIcon from '@iso/assets/images/overview/power.svg'; import activeIcon from '@iso/assets/images/overview/active_icon.svg'; -import sortIcon from '@iso/assets/images/overview/sort.svg'; +import arrowDownIcon from '@iso/assets/images/overview/arrow-down.svg'; import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; @@ -97,8 +97,11 @@ function popUpModal(msg, ip) { }); } -const SortIcon = ({sortBy, column}) => { - if (sortBy == column) return +const SortIcon = ({ sortBy, column, sortDirection }) => { + const direction = sortBy !== column ? 'asc' : sortDirection === 'asc' ? 'desc' : 'asc'; + if (sortBy == column) { + return + } return null } @@ -338,7 +341,7 @@ const BondProviderPopOver = ({data}) => { return d } -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = ''}) => { +const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = '', sortDirection = ''}) => { const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(100); @@ -412,22 +415,22 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon}RPCBFR clickSortHeader('node_address')}>Validator Nodes clickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards clickSortHeader('apy')}>APY clickSortHeader('slash_points')}>Slashes clickSortHeader('score')}>Score clickSortHeader('version')}>Version clickSortHeader('leave')}>{leaveIcon}RPCBFR
    - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + {chains && <> @@ -906,7 +909,7 @@ We use string sort function if value is one of the arrays else do second sort nu {whitelistedNodes.length > 0 && ( - + )} {whitelistedNodes.length === 0 && (
    diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 92ac022..e8e4991 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -48,7 +48,7 @@ import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; import powerIcon from '@iso/assets/images/overview/power.svg'; import activeIcon from '@iso/assets/images/overview/active_icon.svg'; import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; -import sortIcon from '@iso/assets/images/overview/sort.svg'; +import arrowDownIcon from '@iso/assets/images/overview/arrow-down.svg'; const leaveIcon = @@ -88,9 +88,11 @@ function popUpModal(msg, ip) { }); } -const SortIcon = ({sortBy, column}) => { - console.log(' ===============> sortBy, column: ', sortBy, column); - if (sortBy == column) return +const SortIcon = ({ sortBy, column, sortDirection }) => { + const direction = sortBy !== column ? 'asc' : sortDirection === 'asc' ? 'desc' : 'asc'; + if (sortBy == column) { + return + } return null } @@ -328,7 +330,7 @@ const BondProviderPopOver = ({data}) => { return d } -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = ''}) => { +const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = '', sortDirection = ''}) => { const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(100); @@ -402,22 +404,22 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon}RPCBFR clickSortHeader('node_address')}>Validator Nodes clickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards clickSortHeader('apy')}>APY clickSortHeader('slash_points')}>Slashes clickSortHeader('score')}>Score clickSortHeader('version')}>Version clickSortHeader('leave')}>{leaveIcon}RPCBFR
    - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + {chains && <> @@ -893,7 +895,7 @@ We use string sort function if value is one of the arrays else do second sort nu {standByNodes.length > 0 && ( - + )} {standByNodes.length === 0 && (
    diff --git a/src/containers/A_monitor/styles.css b/src/containers/A_monitor/styles.css index f01df2a..c762321 100644 --- a/src/containers/A_monitor/styles.css +++ b/src/containers/A_monitor/styles.css @@ -53,7 +53,12 @@ td { position: absolute; top: 50%; right: -5px; - transform: translate(100%, -50%); +} +.tableHeader span .sort-icon.desc{ + transform: translate(100%, -50%) rotate(0deg); +} +.tableHeader span .sort-icon.asc{ + transform: translate(100%, -50%) rotate(180deg); } .overview-list-wrapper { From 403bac89bc99690976872d0646e3c8fa19dd27c0 Mon Sep 17 00:00:00 2001 From: Thuan Le Date: Sun, 16 Apr 2023 06:36:46 +0700 Subject: [PATCH 32/78] correct sort arrow --- src/containers/A_monitor/activepage.js | 3 +-- src/containers/A_monitor/monitorpage.js | 5 +---- src/containers/A_monitor/otherpage.js | 3 +-- src/containers/A_monitor/standbypage.js | 3 +-- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 41d2011..e1896a5 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -94,9 +94,8 @@ function popUpModal(msg, ip) { } const SortIcon = ({ sortBy, column, sortDirection }) => { - const direction = sortBy !== column ? 'asc' : sortDirection === 'asc' ? 'desc' : 'asc'; if (sortBy == column) { - return + return } return null } diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 0afe6c5..f44a7a3 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -108,9 +108,8 @@ function popUpModal(msg, ip) { } const SortIcon = ({ sortBy, column, sortDirection }) => { - const direction = sortBy !== column ? 'asc' : sortDirection === 'asc' ? 'desc' : 'asc'; if (sortBy == column) { - return + return } return null } @@ -855,10 +854,8 @@ We use string sort function if value is one of the arrays else do second sort nu clickSortHeader(item){ const direction = this.state.sortBy !== item ? 'desc' : this.state.sortDirection === 'desc' ? 'asc' : 'desc'; - console.log(' ===============> : sortBy - sortDirection - direction ::: ', this.state.sortBy, this.state.sortDirection, direction); this.setState({sortBy: item, sortDirection: direction}, ()=> this.setData()) window.setTimeout(()=> { - console.log(' ===============> : ', this.state.sortBy); }, 200) } diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index af400e0..0953281 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -98,9 +98,8 @@ function popUpModal(msg, ip) { } const SortIcon = ({ sortBy, column, sortDirection }) => { - const direction = sortBy !== column ? 'asc' : sortDirection === 'asc' ? 'desc' : 'asc'; if (sortBy == column) { - return + return } return null } diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index e8e4991..a34833a 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -89,9 +89,8 @@ function popUpModal(msg, ip) { } const SortIcon = ({ sortBy, column, sortDirection }) => { - const direction = sortBy !== column ? 'asc' : sortDirection === 'asc' ? 'desc' : 'asc'; if (sortBy == column) { - return + return } return null } From 9e424beda00ab402fd978c292e55d474c587f246 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Mon, 17 Apr 2023 12:01:35 +0100 Subject: [PATCH 33/78] Add avax --- src/containers/A_monitor/activepage.js | 4 ++++ src/containers/A_monitor/monitorpage.js | 3 +++ src/containers/A_monitor/otherpage.js | 3 +++ src/containers/A_monitor/standbypage.js | 3 +++ 4 files changed, 13 insertions(+) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index e1896a5..0be4a57 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -31,6 +31,8 @@ import litecoin from '@iso/assets/images/litecoin.png'; import bitcoincash from '@iso/assets/images/bitcoincash.png'; import dogecoin from '@iso/assets/images/dogecoin.png'; import gaia from '@iso/assets/images/atom.png'; +import avax from '@iso/assets/images/avax.png'; + import thornode from '@iso/assets/images/thornode.svg'; import blockIcon from '@iso/assets/images/overview/block_icon.svg'; @@ -436,6 +438,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai
    + } @@ -496,6 +499,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai + } diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index f44a7a3..047ab8a 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -43,6 +43,7 @@ import dogecoin from '@iso/assets/images/dogecoin.png'; //import luna from '@iso/assets/images/luna.png'; import gaia from '@iso/assets/images/atom.png'; import thornode from '@iso/assets/images/thornode.svg'; +import avax from '@iso/assets/images/avax.png'; import blockIcon from '@iso/assets/images/overview/block_icon.svg'; import highTradingIcon from '@iso/assets/images/overview/24high_trading.svg'; @@ -455,6 +456,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai + } @@ -515,6 +517,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai + } diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 0953281..e282065 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -35,6 +35,7 @@ import bitcoincash from '@iso/assets/images/bitcoincash.png'; import dogecoin from '@iso/assets/images/dogecoin.png'; import gaia from '@iso/assets/images/atom.png'; import thornode from '@iso/assets/images/thornode.svg'; +import avax from '@iso/assets/images/avax.png'; import blockIcon from '@iso/assets/images/overview/block_icon.svg'; import highTradingIcon from '@iso/assets/images/overview/24high_trading.svg'; @@ -440,6 +441,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai + } @@ -500,6 +502,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai + } diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index a34833a..229f333 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -30,6 +30,7 @@ import bitcoincash from '@iso/assets/images/bitcoincash.png'; import dogecoin from '@iso/assets/images/dogecoin.png'; import gaia from '@iso/assets/images/atom.png'; import thornode from '@iso/assets/images/thornode.svg'; +import avax from '@iso/assets/images/avax.png'; import blockIcon from '@iso/assets/images/overview/block_icon.svg'; import highTradingIcon from '@iso/assets/images/overview/24high_trading.svg'; import lowTradingIcon from '@iso/assets/images/overview/24low_trading.svg'; @@ -429,6 +430,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai + } @@ -489,6 +491,7 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai + } From 550289366dfcc58ae5c81439b8548c35fb13e083 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Mon, 17 Apr 2023 12:04:47 +0100 Subject: [PATCH 34/78] add avax logo --- src/assets/images/avax.png | Bin 0 -> 47819 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/assets/images/avax.png diff --git a/src/assets/images/avax.png b/src/assets/images/avax.png new file mode 100644 index 0000000000000000000000000000000000000000..73ff5079148c9ebcf74895381ee49d6cd9138123 GIT binary patch literal 47819 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 literal 0 HcmV?d00001 From d4794c07ea9b349a5aa3a6cd206a2b1e5264f540 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Mon, 17 Apr 2023 12:08:00 +0100 Subject: [PATCH 35/78] Add avax block calc --- src/commonFunctions.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/commonFunctions.js b/src/commonFunctions.js index f378a33..137a5c3 100644 --- a/src/commonFunctions.js +++ b/src/commonFunctions.js @@ -118,11 +118,12 @@ export const getData = async () => { const maxBCHHeight = reduceDown(data2, 'BCH') const maxBNBHeight = reduceDown(data2, 'BNB') const maxGAIAHeight = reduceDown(data2, 'GAIA') + const maxAVAXHeight = reduceDown(data2, 'AVAX') const totalBondedValue = (val.data.map(item => item.bond).reduce((prev, next) => prev + next))/100000000; globalData.totalBondedValue = totalBondedValue; - return {data: val.data, globalData: globalData, maxChainHeights: {BTC: maxBTCHeight, DOGE: maxDogeHeight, ETH: maxEthHeight, LTC: maxLTCHeight, GAIA: maxGAIAHeight, BCH: maxBCHHeight, BNB: maxBNBHeight}} + return {data: val.data, globalData: globalData, maxChainHeights: {BTC: maxBTCHeight, DOGE: maxDogeHeight, ETH: maxEthHeight, LTC: maxLTCHeight, GAIA: maxGAIAHeight, BCH: maxBCHHeight, BNB: maxBNBHeight, AVAX: maxAVAXHeight}} } export const refreshData = async () => { From b76addf7307dd6234ec0652d6b8daeeec13fadd8 Mon Sep 17 00:00:00 2001 From: dannydango Date: Tue, 25 Jul 2023 09:01:03 +0100 Subject: [PATCH 36/78] sort changes --- src/containers/A_monitor/activepage.js | 2217 +++++++++++++++------ src/containers/A_monitor/monitorpage.js | 2354 ++++++++++++++++------- 2 files changed, 3218 insertions(+), 1353 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 0be4a57..0c13206 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -1,81 +1,116 @@ -import React, { Component, useState } from 'react'; -import Modals from '@iso/components/Feedback/Modal'; -import Popover from '@iso/components/uielements/popover'; -import { getData, setCookie, getCookie } from 'CommonFunctions' -import { ModalContent } from '../Feedback/Modal/Modal.styles'; -import { Layout, Button, Input, Modal, Switch, Breadcrumb, Select } from 'antd'; +import React, { Component, useState } from "react"; +import isEmpty from "lodash/isEmpty"; +import Modals from "@iso/components/Feedback/Modal"; +import Popover from "@iso/components/uielements/popover"; +import { getData, setCookie, getCookie } from "CommonFunctions"; +import { ModalContent } from "../Feedback/Modal/Modal.styles"; +import { Layout, Button, Input, Modal, Switch, Breadcrumb, Select } from "antd"; import "./styles.css"; -import { SearchOutlined, LeftOutlined , RightOutlined } from '@ant-design/icons'; - -import heartBlank from '@iso/assets/images/heart-blank.png'; -import heartFull from '@iso/assets/images/heart-full.png'; - -import imageDO from '@iso/assets/images/do.png'; -import imageAWS from '@iso/assets/images/aws.png'; -import imageGCP from '@iso/assets/images/gcp.png'; -import imageAZURE from '@iso/assets/images/azure.png'; -import imageHETZNER from '@iso/assets/images/hetzner.png'; -import imageVULTR from '@iso/assets/images/vultr.png'; -import imageLeaseweb from '@iso/assets/images/leaseweb.png'; -import imageDatacamp from '@iso/assets/images/datacamp.png'; -import imageComcast from '@iso/assets/images/comcast.png'; -import imageChoopa from '@iso/assets/images/choopa.png'; -import imageChartercoms from '@iso/assets/images/chartercoms.png'; -import imageATandT from '@iso/assets/images/atandt.png'; -import imageZenlayer from '@iso/assets/images/zenlayer.png'; - -import binance from '@iso/assets/images/binance.png'; -import eth from '@iso/assets/images/eth.png'; -import bitcoin from '@iso/assets/images/bitcoin.png'; -import litecoin from '@iso/assets/images/litecoin.png'; -import bitcoincash from '@iso/assets/images/bitcoincash.png'; -import dogecoin from '@iso/assets/images/dogecoin.png'; -import gaia from '@iso/assets/images/atom.png'; -import avax from '@iso/assets/images/avax.png'; - -import thornode from '@iso/assets/images/thornode.svg'; - -import blockIcon from '@iso/assets/images/overview/block_icon.svg'; -import highTradingIcon from '@iso/assets/images/overview/24high_trading.svg'; -import lowTradingIcon from '@iso/assets/images/overview/24low_trading.svg'; -import bondIcon from '@iso/assets/images/overview/Bond_icon.svg'; -import churnsIcon from '@iso/assets/images/overview/churns_icon.svg'; -import marcketCapIcon from '@iso/assets/images/overview/marcket_Cap.svg'; -import mcapRankIcon from '@iso/assets/images/overview/mcap_rank.svg'; -import runeUsdtIcon from '@iso/assets/images/overview/rune_usdt.svg'; -import timeIcon from '@iso/assets/images/overview/time_icon.svg'; -import totalSupplyIcon from '@iso/assets/images/overview/total_supply.svg'; -import filterIcon from '@iso/assets/images/overview/filter.svg'; -import loadingIcon from '@iso/assets/images/overview/loading.png'; -import githubIcon from '@iso/assets/images/overview/github_link_icon.svg'; -import twitterIcon from '@iso/assets/images/overview/twitter_link_icon.svg'; -import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; - -import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; -import powerIcon from '@iso/assets/images/overview/power.svg'; -import activeIcon from '@iso/assets/images/overview/active_icon.svg'; -import arrowDownIcon from '@iso/assets/images/overview/arrow-down.svg'; - - -import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; -const leaveIcon = +import { Link } from "react-router-dom"; +import { PUBLIC_ROUTE } from "../../route.constants"; +import { SearchOutlined, LeftOutlined, RightOutlined } from "@ant-design/icons"; + +import heartBlank from "@iso/assets/images/heart-blank.png"; +import heartFull from "@iso/assets/images/heart-full.png"; + +import imageDO from "@iso/assets/images/do.png"; +import imageAWS from "@iso/assets/images/aws.png"; +import imageGCP from "@iso/assets/images/gcp.png"; +import imageAZURE from "@iso/assets/images/azure.png"; +import imageHETZNER from "@iso/assets/images/hetzner.png"; +import imageVULTR from "@iso/assets/images/vultr.png"; +import imageLeaseweb from "@iso/assets/images/leaseweb.png"; +import imageDatacamp from "@iso/assets/images/datacamp.png"; +import imageComcast from "@iso/assets/images/comcast.png"; +import imageChoopa from "@iso/assets/images/choopa.png"; +import imageChartercoms from "@iso/assets/images/chartercoms.png"; +import imageATandT from "@iso/assets/images/atandt.png"; +import imageZenlayer from "@iso/assets/images/zenlayer.png"; + +import binance from "@iso/assets/images/binance.png"; +import eth from "@iso/assets/images/eth.png"; +import bitcoin from "@iso/assets/images/bitcoin.png"; +import litecoin from "@iso/assets/images/litecoin.png"; +import bitcoincash from "@iso/assets/images/bitcoincash.png"; +import dogecoin from "@iso/assets/images/dogecoin.png"; +import gaia from "@iso/assets/images/atom.png"; +import avax from "@iso/assets/images/avax.png"; + +import thornode from "@iso/assets/images/thornode.svg"; + +import blockIcon from "@iso/assets/images/overview/block_icon.svg"; +import highTradingIcon from "@iso/assets/images/overview/24high_trading.svg"; +import lowTradingIcon from "@iso/assets/images/overview/24low_trading.svg"; +import bondIcon from "@iso/assets/images/overview/Bond_icon.svg"; +import churnsIcon from "@iso/assets/images/overview/churns_icon.svg"; +import marcketCapIcon from "@iso/assets/images/overview/marcket_Cap.svg"; +import mcapRankIcon from "@iso/assets/images/overview/mcap_rank.svg"; +import runeUsdtIcon from "@iso/assets/images/overview/rune_usdt.svg"; +import timeIcon from "@iso/assets/images/overview/time_icon.svg"; +import totalSupplyIcon from "@iso/assets/images/overview/total_supply.svg"; +import filterIcon from "@iso/assets/images/overview/filter.svg"; +import loadingIcon from "@iso/assets/images/overview/loading.png"; +import githubIcon from "@iso/assets/images/overview/github_link_icon.svg"; +import twitterIcon from "@iso/assets/images/overview/twitter_link_icon.svg"; +import liquifyLogo from "@iso/assets/images/overview/liquify_logo.svg"; + +import threeDotsIcon from "@iso/assets/images/overview/dots_three_circle.svg"; +import powerIcon from "@iso/assets/images/overview/power.svg"; +import activeIcon from "@iso/assets/images/overview/active_icon.svg"; +import arrowDownIcon from "@iso/assets/images/overview/arrow-down.svg"; + +import VisibleColumn from "@iso/components/VisibleColumn/VisibleColumn"; +const leaveIcon = ( + +); const { Header, Footer, Content } = Layout; -const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} -const tdStyle = {minWidth: 60, textAlign: 'right', fontSize: 14, padding: '10px 15px'} -const trStyle = {height: 45} -const iconStyle = {minWidth: 25, padding: 5, paddingLeft: 10, paddingRight: 10} - +const headerStyle = { + cursor: "pointer", + padding: "12px 15px", + fontSize: 15, + color: "#ffffff", + backgroundColor: "rgba(24, 34, 51, 0.4)", + height: 55, + fontWeight: 600, +}; +const tdStyle = { + minWidth: 60, + textAlign: "right", + fontSize: 14, + padding: "10px 15px", +}; +const trStyle = { height: 45 }; +const iconStyle = { + minWidth: 25, + padding: 5, + paddingLeft: 10, + paddingRight: 10, +}; async function copyToClipWithPopup(msg, ip) { - copyToClipboard(ip) - popUpModal(msg, ip) + copyToClipboard(ip); + popUpModal(msg, ip); } -const copyToClipboard = str => { +const copyToClipboard = (str) => { if (navigator && navigator.clipboard && navigator.clipboard.writeText) return navigator.clipboard.writeText(str); - return Promise.reject('The Clipboard API is not available.'); + return Promise.reject("The Clipboard API is not available."); }; function popUpModal(msg, ip) { @@ -89,256 +124,422 @@ function popUpModal(msg, ip) { ), onOk() {}, - okText: 'OK', - cancelText: 'Cancel', - className: 'feedback-modal' + okText: "OK", + cancelText: "Cancel", + className: "feedback-modal", }); } const SortIcon = ({ sortBy, column, sortDirection }) => { if (sortBy == column) { - return + return ( + + ); } - return null -} + return null; +}; -const Icons = ({address, ip_address, addToFav, whichHeart}) => { - const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}` - const secondURL = `https://viewblock.io/thorchain/address/${address}` +const Icons = ({ address, ip_address, addToFav, whichHeart }) => { + const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}`; + const secondURL = `https://viewblock.io/thorchain/address/${address}`; return ( - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + - - copyToClipWithPopup('IP Copied to clipboard:', ip_address)}> - - - - + + + copyToClipWithPopup("IP Copied to clipboard:", ip_address) + } + > + + + + - #addToFav(address)} src={whichHeart(address)} style={{ cursor:'pointer', marginLeft: 5, marginTop: 2, width: 15, height: 15}}/> + # addToFav(address)} + src={whichHeart(address)} + style={{ + cursor: "pointer", + marginLeft: 5, + marginTop: 2, + width: 15, + height: 15, + }} + /> -) -} - -const GlobalData = ({ globalData, animateBlockCount, state}) => { + ); +}; - let timeToDisplay = ''; - let msgTitle = '' - if (globalData?.churnTry && globalData?.retiring === 'false') { - msgTitle = '(CHURN) RETRY IN' - timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m` - } else if (globalData?.retiring === 'true') { - msgTitle = '(CHURN) CURRENTLY CHURNING' - timeToDisplay = 'Churning' +const GlobalData = ({ globalData, animateBlockCount, state }) => { + let timeToDisplay = ""; + let msgTitle = ""; + if (globalData?.churnTry && globalData?.retiring === "false") { + msgTitle = "(CHURN) RETRY IN"; + timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m`; + } else if (globalData?.retiring === "true") { + msgTitle = "(CHURN) CURRENTLY CHURNING"; + timeToDisplay = "Churning"; } else { - msgTitle = '(CHURN) TIME UNTIL' - timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m` + msgTitle = "(CHURN) TIME UNTIL"; + timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m`; } return ( <> -
    - # -
    -
    CURRENT BLOCK
    -
    {parseInt(globalData.maxHeight).toLocaleString()}
    +
    + # +
    +
    CURRENT BLOCK
    +
    + {parseInt(globalData.maxHeight).toLocaleString()} +
    -
    - # -
    -
    {msgTitle}
    -
    {timeToDisplay}
    +
    + # +
    +
    {msgTitle}
    +
    {timeToDisplay}
    -
    - # -
    -
    TOTAL BONDED VALUE
    -
    ᚱ{state.activeNodes.length>0 ? parseInt((state.activeNodes.map(item => item.bond).reduce((prev, next) => prev + next))/100000000).toLocaleString() : '0'}
    +
    + # +
    +
    TOTAL BONDED VALUE
    +
    + ᚱ + {state.activeNodes.length > 0 + ? parseInt( + state.activeNodes + .map((item) => item.bond) + .reduce((prev, next) => prev + next) / 100000000 + ).toLocaleString() + : "0"} +
    -
    - # -
    -
    MARKET CAP
    -
    ${globalData?.coingecko?.market_cap?.toLocaleString()}
    +
    + # +
    +
    MARKET CAP
    +
    + ${globalData?.coingecko?.market_cap?.toLocaleString()} +
    -
    - # -
    -
    24 HR VOLUME
    -
    ${globalData?.coingecko?.total_volume?.toLocaleString()}
    +
    + # +
    +
    24 HR VOLUME
    +
    + ${globalData?.coingecko?.total_volume?.toLocaleString()} +
    -
    - # -
    -
    MAX EFFECTIVE BOND
    -
    ᚱ{parseInt(globalData.maxEffectiveStake/100000000).toLocaleString()}
    +
    + # +
    +
    MAX EFFECTIVE BOND
    +
    + ᚱ + {parseInt( + globalData.maxEffectiveStake / 100000000 + ).toLocaleString()} +
    - ) -} - + ); +}; const CoinGeckoData = ({ globalData }) => { return ( <> -
    - # -
    -
    PRICE
    -
    ${globalData?.coingecko?.current_price?.toLocaleString()}
    +
    + # +
    +
    PRICE
    +
    + ${globalData?.coingecko?.current_price?.toLocaleString()} +
    -
    - # -
    -
    24 HR HIGH
    -
    ${globalData?.coingecko?.high_24h}
    +
    + # +
    +
    24 HR HIGH
    +
    + ${globalData?.coingecko?.high_24h} +
    -
    - # -
    -
    24 HR LOW
    -
    ${globalData?.coingecko?.low_24h}
    +
    + # +
    +
    24 HR LOW
    +
    + ${globalData?.coingecko?.low_24h} +
    -
    - # -
    -
    MARKET CAP RANK
    -
    {globalData?.coingecko?.market_cap_rank}
    +
    + # +
    +
    MARKET CAP RANK
    +
    + {globalData?.coingecko?.market_cap_rank} +
    -
    - # -
    -
    TOTAL SUPPLY
    -
    ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()}
    +
    + # +
    +
    TOTAL SUPPLY
    +
    + ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()} +
    - ) -} - - -const ReturnIspImage = ({isp}) => { + ); +}; - const style = {width: 25, height: 25} +const ReturnIspImage = ({ isp }) => { + const style = { width: 25, height: 25 }; - if (isp ==='Amazon.com, Inc.' || isp === 'Amazon Technologies Inc.' || isp === 'Amazon.com'){ - return # + if ( + isp === "Amazon.com, Inc." || + isp === "Amazon Technologies Inc." || + isp === "Amazon.com" + ) { + return #; } - if (isp ==='DigitalOcean, LLC' || isp==='DigitalOcean'){ - return # + if (isp === "DigitalOcean, LLC" || isp === "DigitalOcean") { + return #; } - if (isp ==='Google LLC'){ - return # + if (isp === "Google LLC") { + return #; } - if (isp ==='Microsoft Corporation'){ - return # + if (isp === "Microsoft Corporation") { + return #; } - if (isp ==='Hetzner Online GmbH'){ - return # + if (isp === "Hetzner Online GmbH") { + return #; } - if (isp ==='The Constant Company' || isp === 'The Constant Company, LLC'){ - return # + if (isp === "The Constant Company" || isp === "The Constant Company, LLC") { + return #; } - if (isp ==='Leaseweb UK Limited'){ - return # + if (isp === "Leaseweb UK Limited") { + return #; } - if (isp ==='Datacamp Limited'){ - return # + if (isp === "Datacamp Limited") { + return #; } - if (isp ==='Comcast Cable Communications, LLC'){ - return # + if (isp === "Comcast Cable Communications, LLC") { + return #; } - if (isp ==='Choopa'){ - return # + if (isp === "Choopa") { + return #; } - if (isp ==='Charter Communications Inc'){ - return # + if (isp === "Charter Communications Inc") { + return #; } - if (isp ==='AT&T Services, Inc.'){ - return # + if (isp === "AT&T Services, Inc.") { + return #; } - - if (isp ==='Zenlayer Inc'){ - return # + + if (isp === "Zenlayer Inc") { + return #; } - return '-' -} + return "-"; +}; -const ChainTD = ({chain, obchains, maxChainHeights}) => { - const delta = obchains[chain]-maxChainHeights[chain] +const ChainTD = ({ chain, obchains, maxChainHeights }) => { + const delta = obchains[chain] - maxChainHeights[chain]; return ( -
    - ) -} + + ); +}; -const BondProviderPopOver = ({data}) => { - const totalBond = data.map(item=>parseInt(item.bond)).reduce((a, b) => a + b, 0) +const BondProviderPopOver = ({ data }) => { + const totalBond = data + .map((item) => parseInt(item.bond)) + .reduce((a, b) => a + b, 0); - const d = data.map((item,index) => { + const d = data.map((item, index) => { return ( -
    - {item.bond_address.substring(item.bond_address.length-4, item.bond_address.length)} - {((item.bond/totalBond)*100).toFixed(2)}% - ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} -
    - ) - }) - return d -} +
    + + {item.bond_address.substring( + item.bond_address.length - 4, + item.bond_address.length + )} + + {((item.bond / totalBond) * 100).toFixed(2)}% + + ᚱ{parseInt((item.bond / 100000000).toFixed()).toLocaleString()} + +
    + ); + }); + return d; +}; -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = '', sortDirection = ''}) => { +const NodeTable = ({ + nodeData, + clickSortHeader, + sortColour, + maxChainHeights, + chains, + addToFav, + whichHeart, + visibleColumns = { ...defaulColumns }, + sortBy = "", + sortDirection = "", +}) => { const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(100); @@ -354,7 +555,9 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai }; const handleNext = () => { - setCurrentPage((prevPage) => (prevPage === totalPages ? prevPage : prevPage + 1)); + setCurrentPage((prevPage) => + prevPage === totalPages ? prevPage : prevPage + 1 + ); }; const handlePrev = () => { @@ -379,215 +582,740 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai const currentItems = nodeData.slice(indexOfFirstItem, indexOfLastItem); const getHeaderClassName = (key) => { - return visibleColumns && visibleColumns[key] ? 'tableHeader' : 'tableHeader hidden' + return visibleColumns && visibleColumns[key] + ? "tableHeader" + : "tableHeader hidden"; }; const getCellClassName = (key) => { - return visibleColumns && visibleColumns[key] ? '' : 'hidden' + return visibleColumns && visibleColumns[key] ? "" : "hidden"; }; const updatePagingItem = (value) => { - setItemsPerPage(value) + setItemsPerPage(value); }; - return (<> -
    - Nodes per page: - -
    clickSortHeader('node_address')}>Validator NodesclickSortHeader('age')}>AgeclickSortHeader('action')}>ActionclickSortHeader('isp')}>ISPclickSortHeader('location')}>LocationclickSortHeader('bond')}>BondclickSortHeader('bond_providers')}>ProvidersclickSortHeader('current_award')}>RewardsclickSortHeader('apy')}>APYclickSortHeader('slash_points')}>SlashesclickSortHeader('score')}>ScoreclickSortHeader('version')}>VersionclickSortHeader('leave')}>{leaveIcon}RPCBFR clickSortHeader('node_address')}>Validator Nodes clickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards clickSortHeader('apy')}>APY clickSortHeader('slash_points')}>Slashes clickSortHeader('score')}>Score clickSortHeader('version')}>Version clickSortHeader('leave')}>{leaveIcon}RPCBFR# # ##
    # # ##
    # # ##
    # # ##
    {delta===0 ? 'OK' : delta.toString()} + {delta === 0 ? "OK" : delta.toString()} +
    - - - - - - - - - - - - - - - - - - - - {chains && - <> - - - - - - - - - - } - - - - {currentItems.map((item, index) => ( - - - + + + + + + + + + + + + {/* */} + + + + + {chains && ( + <> + + + + + + + + + + )} + + ))} + + + + +
    clickSortHeader('node_address')}>Validator Nodes clickSortHeader('age')}>Age clickSortHeader('action')}>Action clickSortHeader('isp')}>ISP clickSortHeader('location')}>Location clickSortHeader('bond')}>Bond clickSortHeader('bond_providers')}>Providers clickSortHeader('current_award')}>Rewards clickSortHeader('apy')}>APY clickSortHeader('slash_points')}>Slashes clickSortHeader('score')}>Score clickSortHeader('version')}>Version clickSortHeader('leave')}>{leaveIcon}RPCBFR########
    {index+1} - +
    + Nodes per page: + + + + + + + + + + + + + + + + + - - - - + + + {chains && ( + <> + + + + + + + + + + )} + + + + {currentItems.map((item, index) => ( + + + - - - - - - {/* */} - - - - - {chains && - <> - - - - - - - - - - } - - ))} - - -
    + clickSortHeader("node_address")}> + Validator Nodes + + + + clickSortHeader("age")}> + Age + + + + clickSortHeader("action")}> + Action + + + + clickSortHeader("isp")}> + ISP + + + + clickSortHeader("location")}> + Location + + + + clickSortHeader("bond")}> + Bond + + + + clickSortHeader("bond_providers")}> + Providers + + + + clickSortHeader("current_award")}> + Rewards + + + + clickSortHeader("apy")}> + APY + + + + clickSortHeader("slash_points")}> + Slashes + + + + clickSortHeader("score")}> + Score + + + - copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {`...${item.node_address.substring(item.node_address.length - 4)}`} - - - - - - {item.age.toFixed(2)}{item.action} - clickSortHeader("version")}> + Version + + + + - - - - {item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } - title={'Bond Providers'} - trigger="hover" - >{item.bond_providers.providers.length} + clickSortHeader("leave")}> + {leaveIcon} + + + + + RPC + + BFR + clickSortHeader("BNB")} + > + # + clickSortHeader("BTC")} + > + # + clickSortHeader("ETH")} + > + # + clickSortHeader("LTC")} + > + # + clickSortHeader("BCH")} + > + # + clickSortHeader("DOGE")} + > + # + clickSortHeader("GAIA")} + > + # + clickSortHeader("AVAX")} + > + # +
    + {index + 1} + + + + copyToClipWithPopup( + "Node address copied to clipboard:", + item.node_address + ) + } + > + {`...${item.node_address.substring( + item.node_address.length - 4 + )}`} + - ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}{item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'}{item.rpc !== "null" ? '*' : 'Bad'}{item.bifrost !== "null" ? '*' : 'Bad' }
    + +
    + {item.age.toFixed(2)} + + {item.action} + + + + + + + + {item.location} + + ᚱ + {parseInt( + (item.bond / 100000000).toFixed() + ).toLocaleString()} + + {" "} + + } + title={"Bond Providers"} + trigger="hover" + > + + {item.bond_providers.providers.length} + + + + ᚱ + {parseInt( + (item.current_award / 100000000).toFixed() + ).toLocaleString()} + + {item.apy} + + {parseInt(item.slash_points).toLocaleString()} + + {item.score} + + {item.version} + {item.rpc === 'true' ? '*' : 'BAD'} + {item.forced_to_leave === 1 || item.requested_to_leave === 1 + ? "yes" + : "-"} + + + {item.rpc !== "null" ? "*" : "Bad"} + + + + {item.bifrost !== "null" ? "*" : "Bad"} + +
    +
    +
    +
      +
    • + +
    • + {renderPageNumbers} +
    • + +
    • +
    +
    -
    -
      -
    • - {renderPageNumbers} -
    • -
    -
    - - ) -} + ); +}; let timer = null; const defaulColumns = { - nodes: true, - age: true, - action: true, - isp: true, - bond: true, - providers: true, - rewards: true, - apy: true, - slashes: true, - score: true, - version: true, - rpc: true, - bfr: true, - } + nodes: true, + age: true, + action: true, + isp: true, + bond: true, + providers: true, + rewards: true, + apy: true, + slashes: true, + score: true, + version: true, + rpc: true, + bfr: true, +}; export default class extends Component { constructor(props) { super(props); - this.state = { - data: [], - globalData: [], - sortBy: 'bond', - sortDirection: 'desc', - activeNodes: [], - standByNodes: [], - whitelistedNodes: [], - animateBlockCount: false, - myFavNodes: [], - searchTerm: '', - visibleColumns: defaulColumns, - nodesFilter: {}, - loading: true, - }; + this.state = { + data: [], + globalData: [], + sortBy: "bond", + sortDirection: "desc", + activeNodes: [], + standByNodes: [], + whitelistedNodes: [], + animateBlockCount: false, + myFavNodes: [], + searchTerm: "", + visibleColumns: defaulColumns, + nodesFilter: {}, + loading: true, + sortByChain: null, + }; + this.clickSortHeader = this.clickSortHeader.bind(this); } async componentWillMount() { + const myFavNodes = getCookie("myFavNodes"); - const myFavNodes = getCookie('myFavNodes') - - const tmp = myFavNodes.length>0 ? JSON.parse(myFavNodes) : [] + const tmp = myFavNodes.length > 0 ? JSON.parse(myFavNodes) : []; - this.setState({ myFavNodes: tmp }) + this.setState({ myFavNodes: tmp }); - this.refreshData() + this.refreshData(); } async refreshData() { - const data = await getData() + const data = await getData(); if (this.state.loading) { this.setState({ loading: false }); } - if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') { - console.log('DEV ONLY: Refresh Data Results: ', data) + if (!process.env.NODE_ENV || process.env.NODE_ENV === "development") { + console.log("DEV ONLY: Refresh Data Results: ", data); } - this.setState({data: data.data, globalData: data.globalData, maxChainHeights: data.maxChainHeights, animateBlockCount: false}, ()=>this.setData()) //Change animateBlockCount to true here for animation + this.setState( + { + data: data.data, + globalData: data.globalData, + maxChainHeights: data.maxChainHeights, + animateBlockCount: false, + }, + () => this.setData() + ); //Change animateBlockCount to true here for animation } componentDidMount() { - timer = setInterval(() => { - this.setState({animateBlockCount: false}, ()=>this.refreshData()) + this.setState({ animateBlockCount: false }, () => this.refreshData()); //this.refreshData() - }, 6000) + }, 6000); } componentWillUnmount() { @@ -595,342 +1323,595 @@ export default class extends Component { } addToFav(address) { - //setCookie('myFavNodes', '') //return //Below works to add, but need to check if already exists, and if so remove - const myFavNodes = getCookie('myFavNodes')//JSON.parse( + const myFavNodes = getCookie("myFavNodes"); //JSON.parse( - if(myFavNodes.length===0) { + if (myFavNodes.length === 0) { //in here no current fav nodes - const singleAddress = JSON.stringify([address]) - setCookie('myFavNodes', singleAddress) - this.setState({myFavNodes: singleAddress}, ()=>this.setData()) - + const singleAddress = JSON.stringify([address]); + setCookie("myFavNodes", singleAddress); + this.setState({ myFavNodes: singleAddress }, () => this.setData()); } else { //If we already have some fav nodes - const newFaveNodes = JSON.parse(myFavNodes) + const newFaveNodes = JSON.parse(myFavNodes); //Need to check if already exists if (newFaveNodes.indexOf(address) > -1) { - //In the array! - - const newArrayWithRemove = newFaveNodes.filter(item => item!==address) + //In the array! - const newFaveNodesNew = JSON.stringify(newArrayWithRemove) - this.setState({myFavNodes: newArrayWithRemove}, ()=>this.setData()) - setCookie('myFavNodes', newFaveNodesNew) + const newArrayWithRemove = newFaveNodes.filter( + (item) => item !== address + ); + const newFaveNodesNew = JSON.stringify(newArrayWithRemove); + this.setState({ myFavNodes: newArrayWithRemove }, () => this.setData()); + setCookie("myFavNodes", newFaveNodesNew); } else { - //Not in the array - newFaveNodes[newFaveNodes.length] = address + //Not in the array + newFaveNodes[newFaveNodes.length] = address; - const newFaveNodesNew = JSON.stringify(newFaveNodes) - - this.setState({myFavNodes: newFaveNodes}, ()=>this.setData()) - setCookie('myFavNodes', newFaveNodesNew) + const newFaveNodesNew = JSON.stringify(newFaveNodes); + this.setState({ myFavNodes: newFaveNodes }, () => this.setData()); + setCookie("myFavNodes", newFaveNodesNew); } - } - } returnSearchedData(data) { - if (this.state.searchTerm === '') { - return data - } else { - const filteredNodes = data.filter(item => item.node_address.includes(this.state.searchTerm)) - return filteredNodes - } + if (this.state.searchTerm === "") { + return data; + } else { + const filteredNodes = data.filter((item) => + item.node_address.includes(this.state.searchTerm) + ); + return filteredNodes; + } } setData() { - //Grab our state so we can mutate it - let myData = JSON.parse(JSON.stringify(this.state.data)) - - - + // Grab our state so we can mutate it + let myData = JSON.parse(JSON.stringify(this.state.data)); - //Add faves to the data, then we can sort by then below - const newItems = myData.map(item => { - if (this.state.myFavNodes.includes(item.node_address)) { - item.fave = 1 - } else { - item.fave = 0 - } - return item - }); - -/* -Whitelisted -Active -Standby -Ready -Disabled -*/ - - //Filter for our three tables - let activeNodes = newItems.filter(item => item.status ==='Active') - let standbyNodes = newItems.filter(item => (item.status ==='Standby' || item.status ==='Ready') && item.version === this.state.globalData.maxVersion) - - //Create an array of all nodes that are active and standby - const active_standy_nodes = [ ...activeNodes.map(item => {return item.node_address}), ...standbyNodes.map(item => {return item.node_address})] - //White listed are all other nodes which are not active or on standby - //White listed is really just "Other" - let whitelisted = newItems.filter(item => !active_standy_nodes.includes(item.node_address)) - - //let whitelisted = newItems.filter(item => !(item.status ==='Active' || item.status ==='Standby' || item.status ==='Ready') /*&& item.version !== this.state.globalData.maxVersion*/) - - activeNodes = this.findChurnOuts(activeNodes) //Add in the actions for churning - standbyNodes = this.findChurnIns(standbyNodes) //Add in the actions for nodes churning in + // Add faves to the data, then we can sort by then below + const newItems = myData.map((item) => { + if (this.state.myFavNodes.includes(item.node_address)) { + item.fave = 1; + } else { + item.fave = 0; + } + return item; + }); + + // Filter for our three tables + let activeNodes = newItems.filter((item) => item.status === "Active"); + let standbyNodes = newItems.filter( + (item) => + (item.status === "Standby" || item.status === "Ready") && + item.version === this.state.globalData.maxVersion + ); - //Filter here if any searchTerm from the search bar - //Need to do after adding the actions - activeNodes = this.returnSearchedData(activeNodes) - standbyNodes = this.returnSearchedData(standbyNodes) - whitelisted = this.returnSearchedData(whitelisted) + // Create an array of all nodes that are active and standby + const active_standy_nodes = [ + ...activeNodes.map((item) => item.node_address), + ...standbyNodes.map((item) => item.node_address), + ]; - //Sort and add our favs to the top - let activeNodesSorted = this.sortData(activeNodes) - const favActiveNodesSorted = activeNodesSorted.filter(item => item.fave === 1) //Get our favourites - activeNodesSorted = activeNodesSorted.filter(item => item.fave === 0)//Get our non favourites + // White listed are all other nodes which are not active or on standby + let whitelisted = newItems.filter( + (item) => !active_standy_nodes.includes(item.node_address) + ); - activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted] //Join faves at top with non favourites + activeNodes = this.findChurnOuts(activeNodes); // Add in the actions for churning + standbyNodes = this.findChurnIns(standbyNodes); // Add in the actions for nodes churning in + // Filter here if any searchTerm from the search bar + activeNodes = this.returnSearchedData(activeNodes); + standbyNodes = this.returnSearchedData(standbyNodes); + whitelisted = this.returnSearchedData(whitelisted); - const standBySorted = this.sortData(standbyNodes) - const whitelistedSorted = this.sortData(whitelisted) + // Sort and add our favs to the top + let activeNodesSorted = this.sortData( + activeNodes, + this.state.sortBy, + this.state.sortDirection, + false + ); + const favActiveNodesSorted = activeNodesSorted.filter( + (item) => item.fave === 1 + ); // Get our favourites + activeNodesSorted = activeNodesSorted.filter((item) => item.fave === 0); // Get our non favourites + activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted]; // Join faves at top with non favourites + + const standBySorted = this.sortData( + standbyNodes, + this.state.sortBy, + this.state.sortDirection, + false + ); + const whitelistedSorted = this.sortData( + whitelisted, + this.state.sortBy, + this.state.sortDirection, + false + ); - this.setState({ - activeNodes: activeNodesSorted, - standByNodes: standBySorted, - whitelistedNodes: whitelistedSorted //This is really just other - }) + this.setState({ + activeNodes: activeNodesSorted, + standByNodes: standBySorted, + whitelistedNodes: whitelistedSorted, + }); } - - onColumnUpdate (config) { - this.setState({ visibleColumns: config }) + onColumnUpdate(config) { + this.setState({ visibleColumns: config }); } - onNodesFilter (key) { - this.setState(prevState => ({ + onNodesFilter(key) { + this.setState((prevState) => ({ nodesFilter: { ...prevState.nodesFilter, - [key]: !prevState.nodesFilter[key] - } + [key]: !prevState.nodesFilter[key], + }, })); } -/* + /* Split the data into over 300ks and under 300ks With the over 300ks, take the top 3 if they exist and apply churn in action If 4 nodes churn in instead of 3 each time, add another row */ findChurnIns(standbyNodes) { - if (standbyNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + if (standbyNodes.length === 0) return []; //Stops filter from breaking when search returns 0 - const over300 = standbyNodes.filter(item => item.bond >= 30000000000000) - const over300Sorted = this.sortData(over300, 'bond', 'desc') + const over300 = standbyNodes.filter((item) => item.bond >= 30000000000000); + const over300Sorted = this.sortData(over300, "bond", "desc"); - if (over300Sorted.length > 0){ - over300Sorted[Math.min(0, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(1, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(2, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(3, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(4, over300Sorted.length-1)].action = 'Churn In' + if (over300Sorted.length > 0) { + over300Sorted[Math.min(0, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(1, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(2, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(3, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(4, over300Sorted.length - 1)].action = "Churn In"; } - const under300 = standbyNodes.filter(item => item.bond < 30000000000000) + const under300 = standbyNodes.filter((item) => item.bond < 30000000000000); - return [...over300Sorted, ...under300] + return [...over300Sorted, ...under300]; } -/* + /* Lowest Bond Oldest Node Worst Performer (Can't churn out if just churned in, one cycle grace period) */ findChurnOuts(activeNodes) { - if (activeNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + if (activeNodes.length === 0) return []; //Stops filter from breaking when search returns 0 - let activeNodesSorted = this.sortData(activeNodes, 'age', 'desc') - activeNodesSorted[0].action = 'Oldest' + let activeNodesSorted = this.sortData(activeNodes, "age", "desc"); + activeNodesSorted[0].action = "Oldest"; - activeNodesSorted = this.sortData(activeNodes, 'bond', 'asc') - activeNodesSorted[0].action = 'Smallest Bond' + activeNodesSorted = this.sortData(activeNodes, "bond", "asc"); + activeNodesSorted[0].action = "Smallest Bond"; - activeNodesSorted = this.sortData(activeNodes, 'score', 'asc', true) + activeNodesSorted = this.sortData(activeNodes, "score", "asc", true); //we set the 'Worst Performing' tag in the sortData function - this.calcBadValidatorRedline(activeNodes) + this.calcBadValidatorRedline(activeNodes); - return activeNodesSorted + return activeNodesSorted; } - calcBadValidatorRedline(activeNodes){ + calcBadValidatorRedline(activeNodes) { //Only get nodes with slashes greater than 100 - const greater100Slashes = activeNodes.filter(item => item.slash_points > 100) + const greater100Slashes = activeNodes.filter( + (item) => item.slash_points > 100 + ); //Add all the scores together for thes nodes const sum = greater100Slashes.reduce((accumulator, object) => { return accumulator + parseFloat(object.score); }, 0); //Find the average - const averageScore = sum/(greater100Slashes.length+1) + const averageScore = sum / (greater100Slashes.length + 1); - const validatorLine = averageScore/this.state.globalData.BadValidatorRedline + const validatorLine = + averageScore / this.state.globalData.BadValidatorRedline; - activeNodes.map(item => { - if(item.score < validatorLine) { - item.action = 'Bad Redline' + activeNodes.map((item) => { + if (item.score < validatorLine) { + item.action = "Bad Redline"; } - return 0 - }) - + return 0; + }); } -/* + /* Sort by either string or number We use string sort function if value is one of the arrays else do second sort number */ sortData(data, value = null, direction = null, worst_perform = false) { - const toSortBy = value === null ? this.state.sortBy : value - let newData = [] - - if (['node', 'isp', 'location', 'version', 'action', 'node_address'].includes(toSortBy)){ //This sort function for strings - newData = data.sort((a, b) => a[toSortBy].localeCompare(b[toSortBy])); - - } else if (toSortBy === 'bond_providers') {//This is for bond provider sort as we need to go another layer deep in the object - newData = data.sort((a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length); - - } else if (worst_perform === true) { //This is for when we are sorting for action of worst performance as we want to exclude any with age under 3 days - const ageCutOffDays = 3 - const a = data.filter(item => parseFloat(item.age) > ageCutOffDays) - const b = data.filter(item => parseFloat(item.age) <= ageCutOffDays) - const aSorted = a.sort((a, b) => (b[toSortBy] - a[toSortBy]) ); - - aSorted[aSorted.length-1].action = 'Worst Performing' - newData = [...aSorted, ...b] - - } else { //This sort function for numbers - //When sorting, if values are the same, sort by node_address - newData = data.sort( - function(a, b) { - if (a[toSortBy] === b[toSortBy]) { - return a['node_address'].localeCompare(b['node_address']); - } - return a[toSortBy] > b[toSortBy] ? 1 : -1; - }); + const toSortBy = value === null ? this.state.sortBy : value; + let newData = []; + if (this.state.sortChain) { + // New sorting logic for chains + const chain = toSortBy; + newData = [...data].sort((a, b) => { + const deltaA = a.obchains[chain] - this.state.maxChainHeights[chain]; + const deltaB = b.obchains[chain] - this.state.maxChainHeights[chain]; + if (deltaA === deltaB) { + return a["node_address"].localeCompare(b["node_address"]); + } + return deltaA - deltaB; + }); + } else { + if ( + [ + "node", + "isp", + "location", + "version", + "action", + "node_address", + ].includes(toSortBy) + ) { + //This sort function for strings + newData = data.sort((a, b) => a[toSortBy].localeCompare(b[toSortBy])); + } else if (toSortBy === "bond_providers") { + //This is for bond provider sort as we need to go another layer deep in the object + newData = data.sort( + (a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length + ); + } else if (worst_perform === true) { + //This is for when we are sorting for action of worst performance as we want to exclude any with age under 3 days + const ageCutOffDays = 3; + const a = data.filter((item) => parseFloat(item.age) > ageCutOffDays); + const b = data.filter((item) => parseFloat(item.age) <= ageCutOffDays); + const aSorted = a.sort((a, b) => b[toSortBy] - a[toSortBy]); + + aSorted[aSorted.length - 1].action = "Worst Performing"; + newData = [...aSorted, ...b]; + } else { + //This sort function for numbers + //When sorting, if values are the same, sort by node_address + newData = data.sort(function (a, b) { + if (a[toSortBy] === b[toSortBy]) { + return a["node_address"].localeCompare(b["node_address"]); + } + return a[toSortBy] > b[toSortBy] ? 1 : -1; + }); + } } //If we pass it a direction, we set it here, if not we take it from the state - const toDirection = direction === null ? this.state.sortDirection : direction - if (toDirection === 'desc') { - newData.reverse() + const toDirection = + direction === null ? this.state.sortDirection : direction; + if (toDirection === "desc") { + newData.reverse(); } - return newData + return newData; } - clickSortHeader(item){ - const direction = this.state.sortBy !== item ? 'desc' : this.state.sortDirection === 'desc' ? 'asc' : 'desc'; - this.setState({sortBy: item, sortDirection: direction}, ()=> this.setData()) + clickSortHeader(item) { + const isChain = [ + "BNB", + "BTC", + "ETH", + "LTC", + "BCH", + "DOGE", + "GAIA", + "AVAX", + ].includes(item); + const direction = + this.state.sortBy !== item + ? "desc" + : this.state.sortDirection === "desc" + ? "asc" + : "desc"; + this.setState( + { sortBy: item, sortDirection: direction, sortChain: isChain }, + () => this.setData() + ); + window.setTimeout(() => {}, 200); } sortColour(item) { - return '#ffffff' + return "#ffffff"; } - whichHeart(address){ - return this.state.myFavNodes.includes(address) ? heartFull : heartBlank + whichHeart(address) { + return this.state.myFavNodes.includes(address) ? heartFull : heartBlank; } - searchBar() { return ( -
    - this.setState({ searchTerm: event.target.value.trim().toLowerCase()},()=>this.setData())} - prefix={} - /> +
    + + this.setState( + { searchTerm: event.target.value.trim().toLowerCase() }, + () => this.setData() + ) + } + prefix={} + />
    - ) + ); } render() { - - const { loading, nodesFilter, visibleColumns, activeNodes } = this.state; + const { + loading, + data, + nodesFilter, + visibleColumns, + activeNodes, + standByNodes, + whitelistedNodes, + } = this.state; + + const noNodesFilter = + !nodesFilter.active && !nodesFilter.standby && !nodesFilter.orthers; + const showActive = + isEmpty(nodesFilter) || noNodesFilter || nodesFilter.active; + const showStandby = + isEmpty(nodesFilter) || noNodesFilter || nodesFilter.standby; + const showOthers = + isEmpty(nodesFilter) || noNodesFilter || nodesFilter.orthers; return ( -
    -
    - # - Thornode Monitor -
    -
    -
    this.onNodesFilter('active')}>
    -
    this.onNodesFilter('standby')}>
    -
    this.onNodesFilter('orthers')}>
    -
    - -
    - - +
    +
    + # + Thornode Monitor +
    +
    +
    this.onNodesFilter("active")} + > + +
    +
    this.onNodesFilter("standby")} + > + +
    +
    this.onNodesFilter("orthers")} + > + +
    +
    +
    + {loading && ( -
    +
    + +
    )} - {!(loading) && ( -
    - + {!loading && ( +
    }> Dashboard - Active Nodes + + Active Nodes + -
    -
    - +
    +
    +
    - + +
    +
    + + +
    +
    + + {showActive && ( <> -
    -
    - +
    {this.searchBar()} - +
    {activeNodes.length > 0 && ( - + )} {activeNodes.length === 0 && ( -
    -
    No Active Data Available!
    +
    +
    + No Active Data Available! +
    +
    + )} +
    + + )} + + {showStandby && ( + <> +
    +
    + + + +
    + + {!showActive && ( + <> + {this.searchBar()} + + + )} +
    + + {standByNodes.length > 0 && ( + + )} + {standByNodes.length === 0 && ( +
    +
    + No Standby Data Available! +
    +
    + )} +
    + + )} + {showOthers && ( + <> +
    +
    + + + +
    + + {!showActive && !showStandby && ( + <> + {this.searchBar()} + + + )}
    + + {whitelistedNodes.length > 0 && ( + + )} + {whitelistedNodes.length === 0 && ( +
    +
    + No Other Data Available! +
    +
    )} + )}
    )} -
    - # - # -
    - Built by: - # -
    -
    - + + ); } } diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 047ab8a..98ac9ca 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -1,96 +1,127 @@ -import React, { Component, useState } from 'react'; -import isEmpty from 'lodash/isEmpty'; +import React, { Component, useState } from "react"; +import isEmpty from "lodash/isEmpty"; //import LayoutContentWrapper from '@iso/components/utility/layoutWrapper'; //import LayoutContent from '@iso/components/utility/layoutContent'; -import Modals from '@iso/components/Feedback/Modal'; -import Popover from '@iso/components/uielements/popover'; -import { getData, setCookie, getCookie } from 'CommonFunctions' +import Modals from "@iso/components/Feedback/Modal"; +import Popover from "@iso/components/uielements/popover"; +import { getData, setCookie, getCookie } from "CommonFunctions"; //import { someFunc } from './monitor_functions' //import Spin from '@iso/ui/Antd/Spin/Spin'; // import Input from '@iso/components/uielements/input'; -import { ModalContent } from '../Feedback/Modal/Modal.styles'; -import { Layout, Button, Input, Breadcrumb, Select } from 'antd'; +import { ModalContent } from "../Feedback/Modal/Modal.styles"; +import { Layout, Button, Input, Breadcrumb, Select } from "antd"; import "./styles.css"; -import { Link } from 'react-router-dom'; -import { PUBLIC_ROUTE } from '../../route.constants'; -import { SearchOutlined, LeftOutlined , RightOutlined } from '@ant-design/icons'; +import { Link } from "react-router-dom"; +import { PUBLIC_ROUTE } from "../../route.constants"; +import { SearchOutlined, LeftOutlined, RightOutlined } from "@ant-design/icons"; //import { retiringVault } from './data.js' //https://thornode.ninerealms.com/thorchain/vaults/asgard -import heartBlank from '@iso/assets/images/heart-blank.png'; -import heartFull from '@iso/assets/images/heart-full.png'; - -import imageDO from '@iso/assets/images/do.png'; -import imageAWS from '@iso/assets/images/aws.png'; -import imageGCP from '@iso/assets/images/gcp.png'; -import imageAZURE from '@iso/assets/images/azure.png'; -import imageHETZNER from '@iso/assets/images/hetzner.png'; -import imageVULTR from '@iso/assets/images/vultr.png'; -import imageLeaseweb from '@iso/assets/images/leaseweb.png'; -import imageDatacamp from '@iso/assets/images/datacamp.png'; -import imageComcast from '@iso/assets/images/comcast.png'; -import imageChoopa from '@iso/assets/images/choopa.png'; -import imageChartercoms from '@iso/assets/images/chartercoms.png'; -import imageATandT from '@iso/assets/images/atandt.png'; -import imageZenlayer from '@iso/assets/images/zenlayer.png'; - -import binance from '@iso/assets/images/binance.png'; -import eth from '@iso/assets/images/eth.png'; -import bitcoin from '@iso/assets/images/bitcoin.png'; -import litecoin from '@iso/assets/images/litecoin.png'; -import bitcoincash from '@iso/assets/images/bitcoincash.png'; -import dogecoin from '@iso/assets/images/dogecoin.png'; +import heartBlank from "@iso/assets/images/heart-blank.png"; +import heartFull from "@iso/assets/images/heart-full.png"; + +import imageDO from "@iso/assets/images/do.png"; +import imageAWS from "@iso/assets/images/aws.png"; +import imageGCP from "@iso/assets/images/gcp.png"; +import imageAZURE from "@iso/assets/images/azure.png"; +import imageHETZNER from "@iso/assets/images/hetzner.png"; +import imageVULTR from "@iso/assets/images/vultr.png"; +import imageLeaseweb from "@iso/assets/images/leaseweb.png"; +import imageDatacamp from "@iso/assets/images/datacamp.png"; +import imageComcast from "@iso/assets/images/comcast.png"; +import imageChoopa from "@iso/assets/images/choopa.png"; +import imageChartercoms from "@iso/assets/images/chartercoms.png"; +import imageATandT from "@iso/assets/images/atandt.png"; +import imageZenlayer from "@iso/assets/images/zenlayer.png"; + +import binance from "@iso/assets/images/binance.png"; +import eth from "@iso/assets/images/eth.png"; +import bitcoin from "@iso/assets/images/bitcoin.png"; +import litecoin from "@iso/assets/images/litecoin.png"; +import bitcoincash from "@iso/assets/images/bitcoincash.png"; +import dogecoin from "@iso/assets/images/dogecoin.png"; //import luna from '@iso/assets/images/luna.png'; -import gaia from '@iso/assets/images/atom.png'; -import thornode from '@iso/assets/images/thornode.svg'; -import avax from '@iso/assets/images/avax.png'; - -import blockIcon from '@iso/assets/images/overview/block_icon.svg'; -import highTradingIcon from '@iso/assets/images/overview/24high_trading.svg'; -import lowTradingIcon from '@iso/assets/images/overview/24low_trading.svg'; -import bondIcon from '@iso/assets/images/overview/Bond_icon.svg'; -import churnsIcon from '@iso/assets/images/overview/churns_icon.svg'; -import marcketCapIcon from '@iso/assets/images/overview/marcket_Cap.svg'; -import mcapRankIcon from '@iso/assets/images/overview/mcap_rank.svg'; -import runeUsdtIcon from '@iso/assets/images/overview/rune_usdt.svg'; -import timeIcon from '@iso/assets/images/overview/time_icon.svg'; -import totalSupplyIcon from '@iso/assets/images/overview/total_supply.svg'; -import filterIcon from '@iso/assets/images/overview/filter.svg'; -import loadingIcon from '@iso/assets/images/overview/loading.png'; -import githubIcon from '@iso/assets/images/overview/github_link_icon.svg'; -import twitterIcon from '@iso/assets/images/overview/twitter_link_icon.svg'; -import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; - -import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; -import powerIcon from '@iso/assets/images/overview/power.svg'; -import activeIcon from '@iso/assets/images/overview/active_icon.svg'; -import arrowDownIcon from '@iso/assets/images/overview/arrow-down.svg'; - - -import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; - -const leaveIcon = +import gaia from "@iso/assets/images/atom.png"; +import thornode from "@iso/assets/images/thornode.svg"; +import avax from "@iso/assets/images/avax.png"; + +import blockIcon from "@iso/assets/images/overview/block_icon.svg"; +import highTradingIcon from "@iso/assets/images/overview/24high_trading.svg"; +import lowTradingIcon from "@iso/assets/images/overview/24low_trading.svg"; +import bondIcon from "@iso/assets/images/overview/Bond_icon.svg"; +import churnsIcon from "@iso/assets/images/overview/churns_icon.svg"; +import marcketCapIcon from "@iso/assets/images/overview/marcket_Cap.svg"; +import mcapRankIcon from "@iso/assets/images/overview/mcap_rank.svg"; +import runeUsdtIcon from "@iso/assets/images/overview/rune_usdt.svg"; +import timeIcon from "@iso/assets/images/overview/time_icon.svg"; +import totalSupplyIcon from "@iso/assets/images/overview/total_supply.svg"; +import filterIcon from "@iso/assets/images/overview/filter.svg"; +import loadingIcon from "@iso/assets/images/overview/loading.png"; +import githubIcon from "@iso/assets/images/overview/github_link_icon.svg"; +import twitterIcon from "@iso/assets/images/overview/twitter_link_icon.svg"; +import liquifyLogo from "@iso/assets/images/overview/liquify_logo.svg"; + +import threeDotsIcon from "@iso/assets/images/overview/dots_three_circle.svg"; +import powerIcon from "@iso/assets/images/overview/power.svg"; +import activeIcon from "@iso/assets/images/overview/active_icon.svg"; +import arrowDownIcon from "@iso/assets/images/overview/arrow-down.svg"; + +import VisibleColumn from "@iso/components/VisibleColumn/VisibleColumn"; + +const leaveIcon = ( + +); const { Header, Footer, Content } = Layout; -const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} -const tdStyle = {minWidth: 60, textAlign: 'right', fontSize: 14, padding: '10px 15px'} -const trStyle = {height: 45} -const iconStyle = {minWidth: 25, padding: 5, paddingLeft: 10, paddingRight: 10} - +const headerStyle = { + cursor: "pointer", + padding: "12px 15px", + fontSize: 15, + color: "#ffffff", + backgroundColor: "rgba(24, 34, 51, 0.4)", + height: 55, + fontWeight: 600, +}; +const tdStyle = { + minWidth: 60, + textAlign: "right", + fontSize: 14, + padding: "10px 15px", +}; +const trStyle = { height: 45 }; +const iconStyle = { + minWidth: 25, + padding: 5, + paddingLeft: 10, + paddingRight: 10, +}; async function copyToClipWithPopup(msg, ip) { - copyToClipboard(ip) - popUpModal(msg, ip) + copyToClipboard(ip); + popUpModal(msg, ip); } -const copyToClipboard = str => { +const copyToClipboard = (str) => { if (navigator && navigator.clipboard && navigator.clipboard.writeText) return navigator.clipboard.writeText(str); - return Promise.reject('The Clipboard API is not available.'); + return Promise.reject("The Clipboard API is not available."); }; - function popUpModal(msg, ip) { Modals.info({ title:

    Success

    , @@ -102,261 +133,428 @@ function popUpModal(msg, ip) { ), onOk() {}, - okText: 'OK', - cancelText: 'Cancel', - className: 'feedback-modal' + okText: "OK", + cancelText: "Cancel", + className: "feedback-modal", }); } const SortIcon = ({ sortBy, column, sortDirection }) => { if (sortBy == column) { - return + return ( + + ); } - return null -} + return null; +}; -const Icons = ({address, ip_address, addToFav, whichHeart}) => { - const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}` - const secondURL = `https://viewblock.io/thorchain/address/${address}` +const Icons = ({ address, ip_address, addToFav, whichHeart }) => { + const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}`; + const secondURL = `https://viewblock.io/thorchain/address/${address}`; return ( - - - - {/* */} - - - - - + + + + {/* */} + + + + + - - - {/* */} - - - - - - - - - - + + + {/* */} + + + + + + + + + - - copyToClipWithPopup('IP Copied to clipboard:', ip_address)}> + + + copyToClipWithPopup("IP Copied to clipboard:", ip_address) + } + > {/* */} - - - + + {" "} + + - #addToFav(address)} src={whichHeart(address)} style={{ cursor:'pointer', marginLeft: 5, marginTop: 2, width: 15, height: 15}}/> - + # addToFav(address)} + src={whichHeart(address)} + style={{ + cursor: "pointer", + marginLeft: 5, + marginTop: 2, + width: 15, + height: 15, + }} + /> -) -} - -const GlobalData = ({ globalData, animateBlockCount, state}) => { + ); +}; - let timeToDisplay = ''; - let msgTitle = '' - if (globalData?.churnTry && globalData?.retiring === 'false') { - msgTitle = '(CHURN) RETRY IN' - timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m` - } else if (globalData?.retiring === 'true') { - msgTitle = '(CHURN) CURRENTLY CHURNING' - timeToDisplay = 'Churning' +const GlobalData = ({ globalData, animateBlockCount, state }) => { + let timeToDisplay = ""; + let msgTitle = ""; + if (globalData?.churnTry && globalData?.retiring === "false") { + msgTitle = "(CHURN) RETRY IN"; + timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m`; + } else if (globalData?.retiring === "true") { + msgTitle = "(CHURN) CURRENTLY CHURNING"; + timeToDisplay = "Churning"; } else { - msgTitle = '(CHURN) TIME UNTIL' - timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m` + msgTitle = "(CHURN) TIME UNTIL"; + timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m`; } return ( <> -
    - # -
    -
    CURRENT BLOCK
    -
    {parseInt(globalData.maxHeight).toLocaleString()}
    +
    + # +
    +
    CURRENT BLOCK
    +
    + {parseInt(globalData.maxHeight).toLocaleString()} +
    -
    - # -
    -
    {msgTitle}
    -
    {timeToDisplay}
    +
    + # +
    +
    {msgTitle}
    +
    {timeToDisplay}
    -
    - # -
    -
    TOTAL BONDED VALUE
    -
    ᚱ{state.activeNodes.length>0 ? parseInt((state.activeNodes.map(item => item.bond).reduce((prev, next) => prev + next))/100000000).toLocaleString() : '0'}
    +
    + # +
    +
    TOTAL BONDED VALUE
    +
    + ᚱ + {state.activeNodes.length > 0 + ? parseInt( + state.activeNodes + .map((item) => item.bond) + .reduce((prev, next) => prev + next) / 100000000 + ).toLocaleString() + : "0"} +
    -
    - # -
    -
    MARKET CAP
    -
    ${globalData?.coingecko?.market_cap?.toLocaleString()}
    +
    + # +
    +
    MARKET CAP
    +
    + ${globalData?.coingecko?.market_cap?.toLocaleString()} +
    -
    - # -
    -
    24 HR VOLUME
    -
    ${globalData?.coingecko?.total_volume?.toLocaleString()}
    +
    + # +
    +
    24 HR VOLUME
    +
    + ${globalData?.coingecko?.total_volume?.toLocaleString()} +
    -
    - # -
    -
    MAX EFFECTIVE BOND
    -
    ᚱ{parseInt(globalData.maxEffectiveStake/100000000).toLocaleString()}
    +
    + # +
    +
    MAX EFFECTIVE BOND
    +
    + ᚱ + {parseInt( + globalData.maxEffectiveStake / 100000000 + ).toLocaleString()} +
    - ) -} - + ); +}; const CoinGeckoData = ({ globalData }) => { return ( <> -
    - # -
    -
    PRICE
    -
    ${globalData?.coingecko?.current_price?.toLocaleString()}
    +
    + # +
    +
    PRICE
    +
    + ${globalData?.coingecko?.current_price?.toLocaleString()} +
    -
    - # -
    -
    24 HR HIGH
    -
    ${globalData?.coingecko?.high_24h}
    +
    + # +
    +
    24 HR HIGH
    +
    + ${globalData?.coingecko?.high_24h} +
    -
    - # -
    -
    24 HR LOW
    -
    ${globalData?.coingecko?.low_24h}
    +
    + # +
    +
    24 HR LOW
    +
    + ${globalData?.coingecko?.low_24h} +
    -
    - # -
    -
    MARKET CAP RANK
    -
    {globalData?.coingecko?.market_cap_rank}
    +
    + # +
    +
    MARKET CAP RANK
    +
    + {globalData?.coingecko?.market_cap_rank} +
    -
    - # -
    -
    TOTAL SUPPLY
    -
    ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()}
    +
    + # +
    +
    TOTAL SUPPLY
    +
    + ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()} +
    - ) -} - -const ReturnIspImage = ({isp}) => { + ); +}; - const style = {width: 25, height: 25} +const ReturnIspImage = ({ isp }) => { + const style = { width: 25, height: 25 }; - if (isp ==='Amazon.com, Inc.' || isp === 'Amazon Technologies Inc.' || isp === 'Amazon.com'){ - return # + if ( + isp === "Amazon.com, Inc." || + isp === "Amazon Technologies Inc." || + isp === "Amazon.com" + ) { + return #; } - if (isp ==='DigitalOcean, LLC' || isp==='DigitalOcean'){ - return # + if (isp === "DigitalOcean, LLC" || isp === "DigitalOcean") { + return #; } - if (isp ==='Google LLC'){ - return # + if (isp === "Google LLC") { + return #; } - if (isp ==='Microsoft Corporation'){ - return # + if (isp === "Microsoft Corporation") { + return #; } - if (isp ==='Hetzner Online GmbH'){ - return # + if (isp === "Hetzner Online GmbH") { + return #; } - if (isp ==='The Constant Company' || isp === 'The Constant Company, LLC'){ - return # + if (isp === "The Constant Company" || isp === "The Constant Company, LLC") { + return #; } - if (isp ==='Leaseweb UK Limited' || isp === 'Leaseweb USA, Inc.'){ - return # + if (isp === "Leaseweb UK Limited" || isp === "Leaseweb USA, Inc.") { + return #; } - if (isp ==='Datacamp Limited'){ - return # + if (isp === "Datacamp Limited") { + return #; } - if (isp ==='Comcast Cable Communications, LLC'){ - return # + if (isp === "Comcast Cable Communications, LLC") { + return #; } - if (isp ==='Choopa'){ - return # + if (isp === "Choopa") { + return #; } - if (isp ==='Charter Communications Inc'){ - return # + if (isp === "Charter Communications Inc") { + return #; } - if (isp ==='AT&T Services, Inc.'){ - return # + if (isp === "AT&T Services, Inc.") { + return #; } - - if (isp ==='Zenlayer Inc'){ - return # + + if (isp === "Zenlayer Inc") { + return #; } - - return '-' -} -const ChainTD = ({chain, obchains, maxChainHeights}) => { - const delta = obchains[chain]-maxChainHeights[chain] + return "-"; +}; + +const ChainTD = ({ chain, obchains, maxChainHeights }) => { + const delta = obchains[chain] - maxChainHeights[chain]; return ( - {delta===0 ? 'OK' : delta.toString()} - ) -} + + {delta === 0 ? "OK" : delta.toString()} + + ); +}; -const BondProviderPopOver = ({data}) => { - const totalBond = data.map(item=>parseInt(item.bond)).reduce((a, b) => a + b, 0) +const BondProviderPopOver = ({ data }) => { + const totalBond = data + .map((item) => parseInt(item.bond)) + .reduce((a, b) => a + b, 0); - const d = data.map((item,index) => { + const d = data.map((item, index) => { return ( -
    - {item.bond_address.substring(item.bond_address.length-4, item.bond_address.length)} - {((item.bond/totalBond)*100).toFixed(2)}% - ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} -
    - ) - }) - return d -} +
    + + {item.bond_address.substring( + item.bond_address.length - 4, + item.bond_address.length + )} + + {((item.bond / totalBond) * 100).toFixed(2)}% + + ᚱ{parseInt((item.bond / 100000000).toFixed()).toLocaleString()} + +
    + ); + }); + return d; +}; -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = '', sortDirection = ''}) => { +const NodeTable = ({ + nodeData, + clickSortHeader, + sortColour, + maxChainHeights, + chains, + addToFav, + whichHeart, + visibleColumns = { ...defaulColumns }, + sortBy = "", + sortDirection = "", +}) => { const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(100); @@ -372,7 +570,9 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai }; const handleNext = () => { - setCurrentPage((prevPage) => (prevPage === totalPages ? prevPage : prevPage + 1)); + setCurrentPage((prevPage) => + prevPage === totalPages ? prevPage : prevPage + 1 + ); }; const handlePrev = () => { @@ -397,219 +597,746 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai const currentItems = nodeData.slice(indexOfFirstItem, indexOfLastItem); const getHeaderClassName = (key) => { - return visibleColumns && visibleColumns[key] ? 'tableHeader' : 'tableHeader hidden' + return visibleColumns && visibleColumns[key] + ? "tableHeader" + : "tableHeader hidden"; }; const getCellClassName = (key) => { - return visibleColumns && visibleColumns[key] ? '' : 'hidden' + return visibleColumns && visibleColumns[key] ? "" : "hidden"; }; const updatePagingItem = (value) => { - setItemsPerPage(value) + setItemsPerPage(value); }; - return (<> -
    - Nodes per page: - - +
    +
    +
    + + + + + + + + + + + + + + + + + - - - - + + {chains && ( + <> + + + + + + + + + + )} + + + + {currentItems.map((item, index) => ( + + + - - - - - - {/* */} - - - - - {chains && - <> - - - - - - - - - - } - - ))} - - -
    + clickSortHeader("node_address")}> + Validator Nodes + + + + clickSortHeader("age")}> + Age + + + + clickSortHeader("action")}> + Action + + + + clickSortHeader("isp")}> + ISP + + + + clickSortHeader("location")}> + Location + + + + clickSortHeader("bond")}> + Bond + + + + clickSortHeader("bond_providers")}> + Providers + + + + clickSortHeader("current_award")}> + Rewards + + + + clickSortHeader("apy")}> + APY + + + + clickSortHeader("slash_points")}> + Slashes + + + + clickSortHeader("score")}> + Score + + + + clickSortHeader("version")}> + Version + + + - copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {`...${item.node_address.substring(item.node_address.length - 4)}`} - - - - - - {item.age.toFixed(2)}{item.action} - clickSortHeader("leave")}> + {leaveIcon} + + + + - - - - {item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } - title={'Bond Providers'} - trigger="hover" - >{item.bond_providers.providers.length} + RPC + + + BFR + clickSortHeader("BNB")} + > + # + clickSortHeader("BTC")} + > + # + clickSortHeader("ETH")} + > + # + clickSortHeader("LTC")} + > + # + clickSortHeader("BCH")} + > + # + clickSortHeader("DOGE")} + > + # + clickSortHeader("GAIA")} + > + # + clickSortHeader("AVAX")} + > + # +
    + {index + 1} + + + + copyToClipWithPopup( + "Node address copied to clipboard:", + item.node_address + ) + } + > + {`...${item.node_address.substring( + item.node_address.length - 4 + )}`} + - ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}{item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'}{item.rpc !== "null" ? '*' : 'Bad'}{item.bifrost !== "null" ? '*' : 'Bad' }
    + + + + {item.age.toFixed(2)} + + + {item.action} + + + + + + + + + + {item.location} + + + ᚱ + {parseInt( + (item.bond / 100000000).toFixed() + ).toLocaleString()} + + + {" "} + + } + title={"Bond Providers"} + trigger="hover" + > + + {item.bond_providers.providers.length} + + + + + ᚱ + {parseInt( + (item.current_award / 100000000).toFixed() + ).toLocaleString()} + + + {item.apy} + + + {parseInt(item.slash_points).toLocaleString()} + + + {item.score} + + + {item.version} + + {/* {item.rpc === 'true' ? '*' : 'BAD'} */} + + {item.forced_to_leave === 1 || item.requested_to_leave === 1 + ? "yes" + : "-"} + + + + {item.rpc !== "null" ? "*" : "Bad"} + + + + + {item.bifrost !== "null" ? "*" : "Bad"} + + + + {chains && ( + <> + + + + + + + + + + )} + + ))} + + + + + +
    +
    +
      +
    • + +
    • + {renderPageNumbers} +
    • + +
    • +
    +
    -
    -
      -
    • - {renderPageNumbers} -
    • -
    -
    -
    - ) -} + ); +}; let timer = null; const defaulColumns = { - nodes: true, - age: true, - action: true, - isp: true, - bond: true, - providers: true, - rewards: true, - apy: true, - slashes: true, - score: true, - version: true, - rpc: true, - bfr: true, - } + nodes: true, + age: true, + action: true, + isp: true, + bond: true, + providers: true, + rewards: true, + apy: true, + slashes: true, + score: true, + version: true, + rpc: true, + bfr: true, +}; export default class extends Component { - - constructor(props) { super(props); - this.state = { - data: [], - globalData: [], - sortBy: 'bond', - sortDirection: 'desc', - activeNodes: [], - standByNodes: [], - whitelistedNodes: [], - animateBlockCount: false, - myFavNodes: [], - searchTerm: '', - visibleColumns: defaulColumns, - nodesFilter: {}, - loading: true, - }; + this.state = { + data: [], + globalData: [], + sortBy: "bond", + sortDirection: "desc", + activeNodes: [], + standByNodes: [], + whitelistedNodes: [], + animateBlockCount: false, + myFavNodes: [], + searchTerm: "", + visibleColumns: defaulColumns, + nodesFilter: {}, + loading: true, + sortByChain: null, + }; + this.clickSortHeader = this.clickSortHeader.bind(this); } async componentWillMount() { + const myFavNodes = getCookie("myFavNodes"); - const myFavNodes = getCookie('myFavNodes') - - const tmp = myFavNodes.length>0 ? JSON.parse(myFavNodes) : [] + const tmp = myFavNodes.length > 0 ? JSON.parse(myFavNodes) : []; - this.setState({ myFavNodes: tmp }) + this.setState({ myFavNodes: tmp }); - this.refreshData() + this.refreshData(); } async refreshData() { - const data = await getData() + const data = await getData(); if (this.state.loading) { this.setState({ loading: false }); } - if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') { - // console.log('DEV ONLY: Refresh Data Results: ', data) + if (!process.env.NODE_ENV || process.env.NODE_ENV === "development") { + // console.log('DEV ONLY: Refresh Data Results: ', data) } - - this.setState({data: data.data, globalData: data.globalData, maxChainHeights: data.maxChainHeights, animateBlockCount: false}, ()=>this.setData()) //Change animateBlockCount to true here for animation - + this.setState( + { + data: data.data, + globalData: data.globalData, + maxChainHeights: data.maxChainHeights, + animateBlockCount: false, + }, + () => this.setData() + ); //Change animateBlockCount to true here for animation } componentDidMount() { - timer = setInterval(() => { - this.setState({animateBlockCount: false}, ()=>this.refreshData()) + this.setState({ animateBlockCount: false }, () => this.refreshData()); //this.refreshData() - }, 6000) + }, 6000); } componentWillUnmount() { @@ -617,439 +1344,596 @@ export default class extends Component { } addToFav(address) { - //setCookie('myFavNodes', '') //return //Below works to add, but need to check if already exists, and if so remove - const myFavNodes = getCookie('myFavNodes')//JSON.parse( + const myFavNodes = getCookie("myFavNodes"); //JSON.parse( - if(myFavNodes.length===0) { + if (myFavNodes.length === 0) { //in here no current fav nodes - const singleAddress = JSON.stringify([address]) - setCookie('myFavNodes', singleAddress) - this.setState({myFavNodes: singleAddress}, ()=>this.setData()) - + const singleAddress = JSON.stringify([address]); + setCookie("myFavNodes", singleAddress); + this.setState({ myFavNodes: singleAddress }, () => this.setData()); } else { //If we already have some fav nodes - const newFaveNodes = JSON.parse(myFavNodes) + const newFaveNodes = JSON.parse(myFavNodes); //Need to check if already exists if (newFaveNodes.indexOf(address) > -1) { - //In the array! + //In the array! - const newArrayWithRemove = newFaveNodes.filter(item => item!==address) - - const newFaveNodesNew = JSON.stringify(newArrayWithRemove) - this.setState({myFavNodes: newArrayWithRemove}, ()=>this.setData()) - setCookie('myFavNodes', newFaveNodesNew) + const newArrayWithRemove = newFaveNodes.filter( + (item) => item !== address + ); + const newFaveNodesNew = JSON.stringify(newArrayWithRemove); + this.setState({ myFavNodes: newArrayWithRemove }, () => this.setData()); + setCookie("myFavNodes", newFaveNodesNew); } else { - //Not in the array - newFaveNodes[newFaveNodes.length] = address - - const newFaveNodesNew = JSON.stringify(newFaveNodes) + //Not in the array + newFaveNodes[newFaveNodes.length] = address; - this.setState({myFavNodes: newFaveNodes}, ()=>this.setData()) - setCookie('myFavNodes', newFaveNodesNew) + const newFaveNodesNew = JSON.stringify(newFaveNodes); + this.setState({ myFavNodes: newFaveNodes }, () => this.setData()); + setCookie("myFavNodes", newFaveNodesNew); } - } - } returnSearchedData(data) { - if (this.state.searchTerm === '') { - return data - } else { - const filteredNodes = data.filter(item => item.node_address.includes(this.state.searchTerm)) - return filteredNodes - } + if (this.state.searchTerm === "") { + return data; + } else { + const filteredNodes = data.filter((item) => + item.node_address.includes(this.state.searchTerm) + ); + return filteredNodes; + } } setData() { - //Grab our state so we can mutate it - let myData = JSON.parse(JSON.stringify(this.state.data)) - + // Grab our state so we can mutate it + let myData = JSON.parse(JSON.stringify(this.state.data)); + // Add faves to the data, then we can sort by then below + const newItems = myData.map((item) => { + if (this.state.myFavNodes.includes(item.node_address)) { + item.fave = 1; + } else { + item.fave = 0; + } + return item; + }); + + // Filter for our three tables + let activeNodes = newItems.filter((item) => item.status === "Active"); + let standbyNodes = newItems.filter( + (item) => + (item.status === "Standby" || item.status === "Ready") && + item.version === this.state.globalData.maxVersion + ); + // Create an array of all nodes that are active and standby + const active_standy_nodes = [ + ...activeNodes.map((item) => item.node_address), + ...standbyNodes.map((item) => item.node_address), + ]; - //Add faves to the data, then we can sort by then below - const newItems = myData.map(item => { - if (this.state.myFavNodes.includes(item.node_address)) { - item.fave = 1 - } else { - item.fave = 0 - } - return item - }); - -/* -Whitelisted -Active -Standby -Ready -Disabled -*/ - - //Filter for our three tables - let activeNodes = newItems.filter(item => item.status ==='Active') - let standbyNodes = newItems.filter(item => (item.status ==='Standby' || item.status ==='Ready') && item.version === this.state.globalData.maxVersion) - - //Create an array of all nodes that are active and standby - const active_standy_nodes = [ ...activeNodes.map(item => {return item.node_address}), ...standbyNodes.map(item => {return item.node_address})] - //White listed are all other nodes which are not active or on standby - //White listed is really just "Other" - let whitelisted = newItems.filter(item => !active_standy_nodes.includes(item.node_address)) - - //let whitelisted = newItems.filter(item => !(item.status ==='Active' || item.status ==='Standby' || item.status ==='Ready') /*&& item.version !== this.state.globalData.maxVersion*/) - - activeNodes = this.findChurnOuts(activeNodes) //Add in the actions for churning - standbyNodes = this.findChurnIns(standbyNodes) //Add in the actions for nodes churning in - - //Filter here if any searchTerm from the search bar - //Need to do after adding the actions - activeNodes = this.returnSearchedData(activeNodes) - standbyNodes = this.returnSearchedData(standbyNodes) - whitelisted = this.returnSearchedData(whitelisted) - - //Sort and add our favs to the top - let activeNodesSorted = this.sortData(activeNodes) - const favActiveNodesSorted = activeNodesSorted.filter(item => item.fave === 1) //Get our favourites - activeNodesSorted = activeNodesSorted.filter(item => item.fave === 0)//Get our non favourites + // White listed are all other nodes which are not active or on standby + let whitelisted = newItems.filter( + (item) => !active_standy_nodes.includes(item.node_address) + ); - activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted] //Join faves at top with non favourites + activeNodes = this.findChurnOuts(activeNodes); // Add in the actions for churning + standbyNodes = this.findChurnIns(standbyNodes); // Add in the actions for nodes churning in + // Filter here if any searchTerm from the search bar + activeNodes = this.returnSearchedData(activeNodes); + standbyNodes = this.returnSearchedData(standbyNodes); + whitelisted = this.returnSearchedData(whitelisted); - const standBySorted = this.sortData(standbyNodes) - const whitelistedSorted = this.sortData(whitelisted) + // Sort and add our favs to the top + let activeNodesSorted = this.sortData( + activeNodes, + this.state.sortBy, + this.state.sortDirection, + false + ); + const favActiveNodesSorted = activeNodesSorted.filter( + (item) => item.fave === 1 + ); // Get our favourites + activeNodesSorted = activeNodesSorted.filter((item) => item.fave === 0); // Get our non favourites + activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted]; // Join faves at top with non favourites + + const standBySorted = this.sortData( + standbyNodes, + this.state.sortBy, + this.state.sortDirection, + false + ); + const whitelistedSorted = this.sortData( + whitelisted, + this.state.sortBy, + this.state.sortDirection, + false + ); - this.setState({ - activeNodes: activeNodesSorted, - standByNodes: standBySorted, - whitelistedNodes: whitelistedSorted //This is really just other - }) + this.setState({ + activeNodes: activeNodesSorted, + standByNodes: standBySorted, + whitelistedNodes: whitelistedSorted, + }); } - - onColumnUpdate (config) { - this.setState({ visibleColumns: config }) + onColumnUpdate(config) { + this.setState({ visibleColumns: config }); } - onNodesFilter (key) { - this.setState(prevState => ({ + onNodesFilter(key) { + this.setState((prevState) => ({ nodesFilter: { ...prevState.nodesFilter, - [key]: !prevState.nodesFilter[key] - } + [key]: !prevState.nodesFilter[key], + }, })); } -/* + /* Split the data into over 300ks and under 300ks With the over 300ks, take the top 3 if they exist and apply churn in action If 4 nodes churn in instead of 3 each time, add another row */ findChurnIns(standbyNodes) { - if (standbyNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + if (standbyNodes.length === 0) return []; //Stops filter from breaking when search returns 0 - const over300 = standbyNodes.filter(item => item.bond >= 30000000000000) - const over300Sorted = this.sortData(over300, 'bond', 'desc') + const over300 = standbyNodes.filter((item) => item.bond >= 30000000000000); + const over300Sorted = this.sortData(over300, "bond", "desc"); - if (over300Sorted.length > 0){ - over300Sorted[Math.min(0, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(1, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(2, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(3, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(4, over300Sorted.length-1)].action = 'Churn In' + if (over300Sorted.length > 0) { + over300Sorted[Math.min(0, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(1, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(2, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(3, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(4, over300Sorted.length - 1)].action = "Churn In"; } - const under300 = standbyNodes.filter(item => item.bond < 30000000000000) + const under300 = standbyNodes.filter((item) => item.bond < 30000000000000); - return [...over300Sorted, ...under300] + return [...over300Sorted, ...under300]; } -/* + /* Lowest Bond Oldest Node Worst Performer (Can't churn out if just churned in, one cycle grace period) */ findChurnOuts(activeNodes) { - if (activeNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + if (activeNodes.length === 0) return []; //Stops filter from breaking when search returns 0 - let activeNodesSorted = this.sortData(activeNodes, 'age', 'desc') - activeNodesSorted[0].action = 'Oldest' + let activeNodesSorted = this.sortData(activeNodes, "age", "desc"); + activeNodesSorted[0].action = "Oldest"; - activeNodesSorted = this.sortData(activeNodes, 'bond', 'asc') - activeNodesSorted[0].action = 'Smallest Bond' + activeNodesSorted = this.sortData(activeNodes, "bond", "asc"); + activeNodesSorted[0].action = "Smallest Bond"; - activeNodesSorted = this.sortData(activeNodes, 'score', 'asc', true) + activeNodesSorted = this.sortData(activeNodes, "score", "asc", true); //we set the 'Worst Performing' tag in the sortData function - this.calcBadValidatorRedline(activeNodes) + this.calcBadValidatorRedline(activeNodes); - return activeNodesSorted + return activeNodesSorted; } - calcBadValidatorRedline(activeNodes){ + calcBadValidatorRedline(activeNodes) { //Only get nodes with slashes greater than 100 - const greater100Slashes = activeNodes.filter(item => item.slash_points > 100) + const greater100Slashes = activeNodes.filter( + (item) => item.slash_points > 100 + ); //Add all the scores together for thes nodes const sum = greater100Slashes.reduce((accumulator, object) => { return accumulator + parseFloat(object.score); }, 0); //Find the average - const averageScore = sum/(greater100Slashes.length+1) + const averageScore = sum / (greater100Slashes.length + 1); - const validatorLine = averageScore/this.state.globalData.BadValidatorRedline + const validatorLine = + averageScore / this.state.globalData.BadValidatorRedline; - activeNodes.map(item => { - if(item.score < validatorLine) { - item.action = 'Bad Redline' + activeNodes.map((item) => { + if (item.score < validatorLine) { + item.action = "Bad Redline"; } - return 0 - }) - + return 0; + }); } -/* + /* Sort by either string or number We use string sort function if value is one of the arrays else do second sort number */ sortData(data, value = null, direction = null, worst_perform = false) { - const toSortBy = value === null ? this.state.sortBy : value - let newData = [] - - if (['node', 'isp', 'location', 'version', 'action', 'node_address'].includes(toSortBy)){ //This sort function for strings - newData = data.sort((a, b) => a[toSortBy].localeCompare(b[toSortBy])); - - } else if (toSortBy === 'bond_providers') {//This is for bond provider sort as we need to go another layer deep in the object - newData = data.sort((a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length); - - } else if (worst_perform === true) { //This is for when we are sorting for action of worst performance as we want to exclude any with age under 3 days - const ageCutOffDays = 3 - const a = data.filter(item => parseFloat(item.age) > ageCutOffDays) - const b = data.filter(item => parseFloat(item.age) <= ageCutOffDays) - const aSorted = a.sort((a, b) => (b[toSortBy] - a[toSortBy]) ); - - aSorted[aSorted.length-1].action = 'Worst Performing' - newData = [...aSorted, ...b] - - } else { //This sort function for numbers - //When sorting, if values are the same, sort by node_address - newData = data.sort( - function(a, b) { - if (a[toSortBy] === b[toSortBy]) { - return a['node_address'].localeCompare(b['node_address']); - } - return a[toSortBy] > b[toSortBy] ? 1 : -1; - }); + const toSortBy = value === null ? this.state.sortBy : value; + let newData = []; + if (this.state.sortChain) { + // New sorting logic for chains + const chain = toSortBy; + newData = [...data].sort((a, b) => { + const deltaA = a.obchains[chain] - this.state.maxChainHeights[chain]; + const deltaB = b.obchains[chain] - this.state.maxChainHeights[chain]; + if (deltaA === deltaB) { + return a["node_address"].localeCompare(b["node_address"]); + } + return deltaA - deltaB; + }); + } else { + if ( + [ + "node", + "isp", + "location", + "version", + "action", + "node_address", + ].includes(toSortBy) + ) { + newData = data.sort((a, b) => a[toSortBy].localeCompare(b[toSortBy])); + } else if (toSortBy === "bond_providers") { + newData = data.sort( + (a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length + ); + } else if (worst_perform === true) { + const ageCutOffDays = 3; + const a = data.filter((item) => parseFloat(item.age) > ageCutOffDays); + const b = data.filter((item) => parseFloat(item.age) <= ageCutOffDays); + const aSorted = a.sort((a, b) => b[toSortBy] - a[toSortBy]); + aSorted[aSorted.length - 1].action = "Worst Performing"; + newData = [...aSorted, ...b]; + } else { + newData = data.sort(function (a, b) { + if (a[toSortBy] === b[toSortBy]) { + return a["node_address"].localeCompare(b["node_address"]); + } + return a[toSortBy] > b[toSortBy] ? 1 : -1; + }); + } } - //If we pass it a direction, we set it here, if not we take it from the state - const toDirection = direction === null ? this.state.sortDirection : direction - if (toDirection === 'desc') { - newData.reverse() + + const toDirection = + direction === null ? this.state.sortDirection : direction; + if (toDirection === "desc") { + newData.reverse(); } - return newData + return newData; } - clickSortHeader(item){ - const direction = this.state.sortBy !== item ? 'desc' : this.state.sortDirection === 'desc' ? 'asc' : 'desc'; - this.setState({sortBy: item, sortDirection: direction}, ()=> this.setData()) - window.setTimeout(()=> { - }, 200) + clickSortHeader(item) { + const isChain = [ + "BNB", + "BTC", + "ETH", + "LTC", + "BCH", + "DOGE", + "GAIA", + "AVAX", + ].includes(item); + const direction = + this.state.sortBy !== item + ? "desc" + : this.state.sortDirection === "desc" + ? "asc" + : "desc"; + this.setState( + { sortBy: item, sortDirection: direction, sortChain: isChain }, + () => this.setData() + ); + window.setTimeout(() => {}, 200); } sortColour(item) { - return '#ffffff' + return "#ffffff"; } - whichHeart(address){ - return this.state.myFavNodes.includes(address) ? heartFull : heartBlank + whichHeart(address) { + return this.state.myFavNodes.includes(address) ? heartFull : heartBlank; } - searchBar() { return ( -
    - this.setState({ searchTerm: event.target.value.trim().toLowerCase()},()=>this.setData())} - prefix={} - /> +
    + + this.setState( + { searchTerm: event.target.value.trim().toLowerCase() }, + () => this.setData() + ) + } + prefix={} + />
    - ) + ); } render() { + const { + loading, + data, + nodesFilter, + visibleColumns, + activeNodes, + standByNodes, + whitelistedNodes, + } = this.state; + + const noNodesFilter = + !nodesFilter.active && !nodesFilter.standby && !nodesFilter.orthers; + const showActive = + isEmpty(nodesFilter) || noNodesFilter || nodesFilter.active; + const showStandby = + isEmpty(nodesFilter) || noNodesFilter || nodesFilter.standby; + const showOthers = + isEmpty(nodesFilter) || noNodesFilter || nodesFilter.orthers; - const { loading, data, nodesFilter, visibleColumns, activeNodes, standByNodes, whitelistedNodes } = this.state; - - const noNodesFilter = (!nodesFilter.active && !nodesFilter.standby && !nodesFilter.orthers); - const showActive = (isEmpty(nodesFilter) || noNodesFilter || (nodesFilter.active)) - const showStandby = (isEmpty(nodesFilter) || noNodesFilter || (nodesFilter.standby)) - const showOthers = (isEmpty(nodesFilter) || noNodesFilter || (nodesFilter.orthers)) - - - return ( + return ( -
    -
    - # - Thornode Monitor -
    -
    - {/*
    this.onNodesFilter('active')}>
    +
    +
    + # + Thornode Monitor +
    +
    + {/*
    this.onNodesFilter('active')}>
    this.onNodesFilter('standby')}>
    this.onNodesFilter('orthers')}>
    */} -
    this.onNodesFilter('active')}> - this.onNodesFilter("active")} > - - -
    -
    this.onNodesFilter('standby')}> - + + +
    +
    this.onNodesFilter("standby")} > - - -
    -
    this.onNodesFilter('orthers')}> - + + +
    +
    this.onNodesFilter("orthers")} > - - + + + +
    -
    - -
    - - {loading && ( -
    - )} - - {(!loading) && ( -
    - - Dashboard - - -
    -
    - - -
    + + + {loading && ( +
    +
    - - {showActive && ( - <> -
    -
    - - - -
    - {this.searchBar()} - - + )} + + {!loading && ( +
    + + Dashboard + + +
    +
    + +
    +
    - {activeNodes.length > 0 && ( - - )} - {activeNodes.length === 0 && ( -
    -
    No Active Data Available!
    -
    - )} -
    - - )} - - {showStandby && ( - <> -
    -
    - - - + {showActive && ( + <> +
    +
    + + + +
    + {this.searchBar()} + +
    - {(!showActive) && ( - <> - {this.searchBar()} - - + {activeNodes.length > 0 && ( + )} -
    + {activeNodes.length === 0 && ( +
    +
    + No Active Data Available! +
    +
    + )} +
    + + )} - {standByNodes.length > 0 && ( - - )} - {standByNodes.length === 0 && ( -
    -
    No Standby Data Available!
    -
    - )} -
    - - )} - {showOthers && ( - <> -
    -
    - - - + {showStandby && ( + <> +
    +
    + + + +
    + + {!showActive && ( + <> + {this.searchBar()} + + + )}
    - {(!showActive && !showStandby) && ( - <> - {this.searchBar()} - - + {standByNodes.length > 0 && ( + )} -
    + {standByNodes.length === 0 && ( +
    +
    + No Standby Data Available! +
    +
    + )} +
    + + )} + {showOthers && ( + <> +
    +
    + + + +
    + + {!showActive && !showStandby && ( + <> + {this.searchBar()} + + + )} +
    - {whitelistedNodes.length > 0 && ( - - )} - {whitelistedNodes.length === 0 && ( -
    -
    No Other Data Available!
    -
    - )} - - )} -
    - )} + {whitelistedNodes.length > 0 && ( + + )} + {whitelistedNodes.length === 0 && ( +
    +
    + No Other Data Available! +
    +
    + )} + + )} +
    + )} -
    - # - # -
    - Built by: - # -
    -
    - + + ); } -} \ No newline at end of file +} From 50ba79b35d392b18a0fe19fe3a11ecb2dfbeb443 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 25 Jul 2023 09:39:02 +0100 Subject: [PATCH 37/78] Fix search and rpc/bifrost logic Add bond providers into search, fix bug which caused false reporting of bifrost and rpc status. --- src/containers/A_monitor/activepage.js | 6 +++--- src/containers/A_monitor/monitorpage.js | 10 +++++----- src/containers/A_monitor/otherpage.js | 6 +++--- src/containers/A_monitor/standbypage.js | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 0be4a57..501c286 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -487,8 +487,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} {item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'} - {item.rpc !== "null" ? '*' : 'Bad'} - {item.bifrost !== "null" ? '*' : 'Bad' } + {item.rpc.includes("null") ? 'Bad' : '*'} + {item.bifrost.includes("null") ? 'Bad' : '*'} {chains && <> @@ -642,7 +642,7 @@ export default class extends Component { if (this.state.searchTerm === '') { return data } else { - const filteredNodes = data.filter(item => item.node_address.includes(this.state.searchTerm)) + const filteredNodes = data.filter(item => {return (item.node_address.includes(this.state.searchTerm) || item.bondProvidersString.includes(this.state.searchTerm))}) return filteredNodes } } diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 047ab8a..efc40af 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -505,8 +505,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} {item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'} - {item.rpc !== "null" ? '*' : 'Bad'} - {item.bifrost !== "null" ? '*' : 'Bad' } + {item.rpc.includes("null") ? 'Bad' : '*'} + {item.bifrost.includes("null") ? 'Bad' : '*' } {chains && <> @@ -664,8 +664,8 @@ export default class extends Component { if (this.state.searchTerm === '') { return data } else { - const filteredNodes = data.filter(item => item.node_address.includes(this.state.searchTerm)) - return filteredNodes + const filteredNodes = data.filter(item => {return (item.node_address.includes(this.state.searchTerm) || item.bondProvidersString.includes(this.state.searchTerm))}) + return filteredNodes } } @@ -1052,4 +1052,4 @@ We use string sort function if value is one of the arrays else do second sort nu ); } -} \ No newline at end of file +} diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index e282065..f50382a 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -490,8 +490,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} {item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'} - {item.rpc !== "null" ? '*' : 'Bad'} - {item.bifrost !== "null" ? '*' : 'Bad' } + {item.rpc.includes("null") ? 'Bad' : '*'} + {item.bifrost.includes("null") ? 'Bad' : '*'} {chains && <> @@ -642,7 +642,7 @@ export default class extends Component { if (this.state.searchTerm === '') { return data } else { - const filteredNodes = data.filter(item => item.node_address.includes(this.state.searchTerm)) + const filteredNodes = data.filter(item => {return (item.node_address.includes(this.state.searchTerm) || item.bondProvidersString.includes(this.state.searchTerm))}) return filteredNodes } } diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 229f333..396ab7c 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -479,8 +479,8 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai {item.version} {/* {item.rpc === 'true' ? '*' : 'BAD'} */} {item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'} - {item.rpc !== "null" ? '*' : 'Bad'} - {item.bifrost !== "null" ? '*' : 'Bad' } + {item.rpc.includes("null") ? 'Bad' : '*'} + {item.bifrost.includes("null") ? 'Bad' : '*'} {chains && <> @@ -628,7 +628,7 @@ export default class extends Component { if (this.state.searchTerm === '') { return data } else { - const filteredNodes = data.filter(item => item.node_address.includes(this.state.searchTerm)) + const filteredNodes = data.filter(item => {return (item.node_address.includes(this.state.searchTerm) || item.bondProvidersString.includes(this.state.searchTerm))}) return filteredNodes } } From 8e9a03adc2593a26bfb788d12d48208cb9c35710 Mon Sep 17 00:00:00 2001 From: dannydango Date: Tue, 25 Jul 2023 12:20:56 +0100 Subject: [PATCH 38/78] Icon updates --- src/containers/A_monitor/activepage.js | 512 +++++++++++++++++------ src/containers/A_monitor/monitorpage.js | 515 ++++++++++++++++++------ src/containers/A_monitor/styles.css | 159 ++++---- 3 files changed, 849 insertions(+), 337 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 0c13206..00a7e63 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -130,11 +130,11 @@ function popUpModal(msg, ip) { }); } -const SortIcon = ({ sortBy, column, sortDirection }) => { - if (sortBy == column) { +const SortIcon = ({ column, sortBy, sortDirection }) => { + if (sortBy === column) { return ( @@ -640,17 +640,23 @@ const NodeTable = ({ ...headerStyle, color: sortColour("node_address"), textAlign: "center", - minWidth: 100, }} + onClick={() => clickSortHeader("node_address")} > - clickSortHeader("node_address")}> - Validator Nodes +
    + Validator Nodes - +
    clickSortHeader("age")} > - clickSortHeader("age")}> - Age +
    + Age - +
    clickSortHeader("action")} > - clickSortHeader("action")}> - Action +
    + Action - +
    clickSortHeader("isp")} > - clickSortHeader("isp")}> - ISP +
    + ISP - +
    clickSortHeader("location")} > - clickSortHeader("location")}> - Location +
    + Location - +
    clickSortHeader("bond")} > - clickSortHeader("bond")}> - Bond +
    + Bond - +
    clickSortHeader("bond_providers")} > - clickSortHeader("bond_providers")}> - Providers +
    + Providers - +
    clickSortHeader("current_award")} > - clickSortHeader("current_award")}> - Rewards +
    + Rewards - +
    clickSortHeader("apy")} > - clickSortHeader("apy")}> - APY +
    + APY - +
    clickSortHeader("slash_points")} > - clickSortHeader("slash_points")}> - Slashes +
    + Slashes - +
    clickSortHeader("score")} > - clickSortHeader("score")}> - Score +
    + Score - +
    clickSortHeader("version")} > - clickSortHeader("version")}> - Version +
    + Version - +
    clickSortHeader("leave")} > - clickSortHeader("leave")}> - {leaveIcon} +
    + {leaveIcon} - +
    clickSortHeader("BNB")} > - # + > + # + +
    clickSortHeader("BTC")} > - # + > + # + +
    + clickSortHeader("ETH")} > - # + > + # + +
    clickSortHeader("LTC")} > - # + > + # + +
    clickSortHeader("BCH")} > - # + > + # + +
    clickSortHeader("DOGE")} > - # + > + # + +
    clickSortHeader("GAIA")} > - # + > + # + +
    + clickSortHeader("AVAX")} > - # + > + # + +
    )} @@ -1249,6 +1485,8 @@ const defaulColumns = { isp: true, bond: true, providers: true, + location: true, + leave: true, rewards: true, apy: true, slashes: true, @@ -1256,6 +1494,14 @@ const defaulColumns = { version: true, rpc: true, bfr: true, + BTC: true, + BNB: true, + ETH: true, + LTC: true, + BCH: true, + DOGE: true, + GAIA: true, + AVAX: true, }; export default class extends Component { constructor(props) { diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 98ac9ca..7bd8d0e 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -1,5 +1,6 @@ import React, { Component, useState } from "react"; import isEmpty from "lodash/isEmpty"; +import { UpOutlined, DownOutlined } from "@ant-design/icons"; //import LayoutContentWrapper from '@iso/components/utility/layoutWrapper'; //import LayoutContent from '@iso/components/utility/layoutContent'; @@ -139,11 +140,11 @@ function popUpModal(msg, ip) { }); } -const SortIcon = ({ sortBy, column, sortDirection }) => { - if (sortBy == column) { +const SortIcon = ({ column, sortBy, sortDirection }) => { + if (sortBy === column) { return ( @@ -655,17 +656,23 @@ const NodeTable = ({ ...headerStyle, color: sortColour("node_address"), textAlign: "center", - minWidth: 100, }} + onClick={() => clickSortHeader("node_address")} > - clickSortHeader("node_address")}> - Validator Nodes +
    + Validator Nodes - +
    clickSortHeader("age")} > - clickSortHeader("age")}> - Age +
    + Age - +
    clickSortHeader("action")} > - clickSortHeader("action")}> - Action +
    + Action - +
    clickSortHeader("isp")} > - clickSortHeader("isp")}> - ISP +
    + ISP - +
    clickSortHeader("location")} > - clickSortHeader("location")}> - Location +
    + Location - +
    clickSortHeader("bond")} > - clickSortHeader("bond")}> - Bond +
    + Bond - +
    clickSortHeader("bond_providers")} > - clickSortHeader("bond_providers")}> - Providers +
    + Providers - +
    clickSortHeader("current_award")} > - clickSortHeader("current_award")}> - Rewards +
    + Rewards - +
    clickSortHeader("apy")} > - clickSortHeader("apy")}> - APY +
    + APY - +
    clickSortHeader("slash_points")} > - clickSortHeader("slash_points")}> - Slashes +
    + Slashes - +
    clickSortHeader("score")} > - clickSortHeader("score")}> - Score +
    + Score - +
    clickSortHeader("version")} > - clickSortHeader("version")}> - Version +
    + Version - +
    clickSortHeader("leave")} > - clickSortHeader("leave")}> - {leaveIcon} +
    + {leaveIcon} - +
    + clickSortHeader("BNB")} > - # + > + # + +
    + clickSortHeader("BTC")} > - # + > + # + +
    + clickSortHeader("ETH")} > - # + > + # + +
    clickSortHeader("LTC")} > - # + > + # + +
    clickSortHeader("BCH")} > - # + > + # + +
    clickSortHeader("DOGE")} > - # + > + # + +
    clickSortHeader("GAIA")} > - # + > + # + +
    + clickSortHeader("AVAX")} > - # + > + # + +
    )} @@ -1270,6 +1509,8 @@ const defaulColumns = { isp: true, bond: true, providers: true, + location: true, + leave: true, rewards: true, apy: true, slashes: true, @@ -1277,6 +1518,14 @@ const defaulColumns = { version: true, rpc: true, bfr: true, + BTC: true, + BNB: true, + ETH: true, + LTC: true, + BCH: true, + DOGE: true, + GAIA: true, + AVAX: true, }; export default class extends Component { constructor(props) { diff --git a/src/containers/A_monitor/styles.css b/src/containers/A_monitor/styles.css index c762321..e4a825a 100644 --- a/src/containers/A_monitor/styles.css +++ b/src/containers/A_monitor/styles.css @@ -1,4 +1,3 @@ - #root { height: 100%; } @@ -7,21 +6,21 @@ min-width: 1920px; } body { - font-family: monospace!important; + font-family: monospace !important; font-weight: 200; } .icons-wrapper svg { - color: #7E7E7E; + color: #7e7e7e; } .icons-wrapper svg:hover { - color: #1C39BB; + color: #1c39bb; } td { border-style: solid; border-width: 1px; - border-color: rgba(0,0,0,0.07) + border-color: rgba(0, 0, 0, 0.07); } .animateGrow { @@ -31,43 +30,51 @@ td { animation-duration: 1s; } @keyframes animateBlockHeight { - 0% {background-color:white;} - 35% {background-color:rgba(230,255,117,0.5);} - 65% {background-color:rgba(230,255,117,0.5);} - 100% {background-color:white;} + 0% { + background-color: white; + } + 35% { + background-color: rgba(230, 255, 117, 0.5); + } + 65% { + background-color: rgba(230, 255, 117, 0.5); + } + 100% { + background-color: white; + } } .nodeaddress:hover { - color: #1C39BB + color: #1c39bb; } -.tableHeader span{ +.tableHeader span { position: relative; } .tableHeader:hover { - color: #004d59 + color: #004d59; } -.tableHeader span .sort-icon{ +.tableHeader span .sort-icon { position: absolute; top: 50%; right: -5px; } -.tableHeader span .sort-icon.desc{ +.tableHeader span .sort-icon.desc { transform: translate(100%, -50%) rotate(0deg); } -.tableHeader span .sort-icon.asc{ +.tableHeader span .sort-icon.asc { transform: translate(100%, -50%) rotate(180deg); } .overview-list-wrapper { - border-bottom: 1px solid #1C39BB; + border-bottom: 1px solid #1c39bb; padding-bottom: 28px; } .overview-list { column-count: 6; - background: linear-gradient(269.82deg, #FFFFFF -20.26%, #FFFFFF 99.82%); + background: linear-gradient(269.82deg, #ffffff -20.26%, #ffffff 99.82%); opacity: 0.8; border-radius: 10px; padding: 36px 40px 10px; @@ -100,7 +107,7 @@ td { font-size: 13px; line-height: 16px; letter-spacing: -0.015em; - color: #1B34A0; + color: #1b34a0; } iframe { @@ -114,7 +121,7 @@ iframe { margin: 37px 0 16px; } -.cta-wrapper .cta-link{ +.cta-wrapper .cta-link { flex: 1; } @@ -124,7 +131,7 @@ iframe { .paging-wrapper { padding: 25px 0; - color: #9CA3AF; + color: #9ca3af; } .page-numbers { @@ -132,7 +139,7 @@ iframe { justify-content: center; } .page-numbers li { - border: 1.5px solid #9CA3AF; + border: 1.5px solid #9ca3af; cursor: pointer; font-size: 14px; padding: 3px 6px; @@ -151,8 +158,8 @@ iframe { } .page-numbers li.active { - border: 1.5px solid #1C39BB; - color: #1C39BB; + border: 1.5px solid #1c39bb; + color: #1c39bb; } .page-numbers .nav-button { @@ -172,7 +179,8 @@ iframe { } .ant-layout-content { - background-image: url('./../../assets/images/overview/liquify_bg.png'), url('./../../assets/images/overview/hex_map_bg.png'); + background-image: url("./../../assets/images/overview/liquify_bg.png"), + url("./../../assets/images/overview/hex_map_bg.png"); background-repeat: no-repeat; background-position: top 160px center, top calc(960px) center; display: flex; @@ -197,8 +205,12 @@ iframe { } @keyframes spin { - from { transform: rotate(0deg); } - to { transform: rotate(360deg); } + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } } .ant-layout-footer { @@ -214,7 +226,7 @@ iframe { cursor: pointer; } -.logo-wrapper{ +.logo-wrapper { flex: 1; display: flex; align-items: center; @@ -239,14 +251,14 @@ iframe { } .data-table-wrapper::before { - content: ''; + content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; - background: linear-gradient(90.11deg, #FFFFFF 1.08%, #EEF0FA 100%); - opacity: 0.9; + background: linear-gradient(90.11deg, #ffffff 1.08%, #eef0fa 100%); + opacity: 0.9; z-index: -1; } .data-table-wrapper tbody { @@ -262,7 +274,8 @@ table { border-spacing: 0; } -td, th { +td, +th { border: none; margin: 0; } @@ -283,8 +296,8 @@ tr:first-child { .header-left { flex: 1; } -.header-left span{ - font-family: 'Montserrat'; +.header-left span { + font-family: "Montserrat"; font-style: normal; font-weight: 700; font-size: 25px; @@ -298,7 +311,7 @@ tr:first-child { gap: 60px; } -.header-right .active-node{ +.header-right .active-node { display: flex; align-items: center; justify-content: center; @@ -310,7 +323,7 @@ tr:first-child { z-index: 1; overflow: hidden; } -.header-right .active-node::before{ +.header-right .active-node::before { content: ""; position: absolute; top: 0; @@ -323,13 +336,13 @@ tr:first-child { opacity: 0; transition: opacity 0.3s ease-in-out; } -.header-right .active-node:hover::before{ +.header-right .active-node:hover::before { opacity: 1; } -.header-right .active-node.active-node--active::before{ +.header-right .active-node.active-node--active::before { content: ""; - background: #1C39BB; + background: #1c39bb; filter: none; z-index: -1; opacity: 1; @@ -345,7 +358,7 @@ tr:first-child { .no-data__content { width: 500px; height: 180px; - background: #FFFFFF; + background: #ffffff; box-shadow: 0px 5px 20px rgb(0 0 0 / 25%); border-radius: 20px; display: flex; @@ -360,32 +373,32 @@ tr:first-child { .button-filter { height: auto; padding: 5px; - background: linear-gradient(90deg, #FFFFFF 0%, #EDEFFA 114.85%); + background: linear-gradient(90deg, #ffffff 0%, #edeffa 114.85%); box-shadow: 0px 4px 10px rgb(0 0 0 / 25%); border-radius: 10px; margin-left: 40px; } -.search-input .anticon-search svg{ +.search-input .anticon-search svg { width: 24px; height: 24px; fill: #c8cace; } .filter-modal .ant-modal, -.filter-modal .ant-modal-title{ +.filter-modal .ant-modal-title { color: #182233; } .filter-modal .ant-switch { - background: #D9DDE7; + background: #d9dde7; } .filter-modal .ant-switch-checked { - background: #1C39BB; + background: #1c39bb; } .filter-modal .ant-modal-content { width: 600px; - background: #FFFFFF; + background: #ffffff; box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.25); border-radius: 20px; overflow: hidden; @@ -411,11 +424,11 @@ tr:first-child { text-align: center; padding: 0; } -.filter-modal .ant-modal-footer .ant-btn-default{ - background: #6B7280; +.filter-modal .ant-modal-footer .ant-btn-default { + background: #6b7280; color: #fff; } -.filter-modal .ant-modal-footer .ant-btn{ +.filter-modal .ant-modal-footer .ant-btn { min-width: 110px; } .filter-modal .filter-list { @@ -452,10 +465,10 @@ tr:first-child { left: calc(100% - 17px - 0px); } .filter-modal .ant-switch-checked .ant-switch-handle::before { - background: #D9DDE7; + background: #d9dde7; } .filter-modal .ant-switch-handle::before { - background: #1F1F43; + background: #1f1f43; } .ant-breadcrumb a, @@ -470,42 +483,42 @@ tr:first-child { } .ant-breadcrumb .current { - color: #1C39BB; + color: #1c39bb; } .layout-content-wrapper { margin: 0 70px; } -.feedback-modal .ant-modal-content { - background: #FFFFFF; +.feedback-modal .ant-modal-content { + background: #ffffff; box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.15); border-radius: 6px; } -.feedback-modal .anticon { - color: #76CA66 !important; +.feedback-modal .anticon { + color: #76ca66 !important; } -.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content { +.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content { font-weight: 400; font-size: 12px; line-height: 15px; letter-spacing: -0.01em; - color: #7E7E7E; + color: #7e7e7e; } -.feedback-modal .ant-modal-body { +.feedback-modal .ant-modal-body { padding: 36px 30px; } -.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content strong { +.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content strong { font-weight: 600; } -.feedback-modal.ant-modal-confirm .ant-modal-confirm-btns { +.feedback-modal.ant-modal-confirm .ant-modal-confirm-btns { margin: 18px auto 0; text-align: center; float: none; } -.feedback-modal .ant-btn-primary:focus { - background: #1C39BB; - border-color: #1C39BB; +.feedback-modal .ant-btn-primary:focus { + background: #1c39bb; + border-color: #1c39bb; } .ant-modal-mask { @@ -517,23 +530,23 @@ tr:first-child { border-radius: 6px; text-align: center; } -.ant-popover-inner .ant-popover-title{ +.ant-popover-inner .ant-popover-title { font-style: normal; font-weight: 600; font-size: 12px; line-height: 15px; letter-spacing: -0.01em; - color: #7E7E7E; + color: #7e7e7e; padding: 8px 16px; - border-bottom: 0.2px solid #9CA3AF;; + border-bottom: 0.2px solid #9ca3af; } -.ant-popover-inner .ant-popover-inner-content{ +.ant-popover-inner .ant-popover-inner-content { font-style: normal; font-weight: 400; font-size: 10px; line-height: 12px; letter-spacing: -0.01em; - color: #7E7E7E; + color: #7e7e7e; } .nodeaddress { @@ -541,10 +554,10 @@ tr:first-child { width: 85px; } -.item-to-show { +.item-to-show { padding: 20px 0; } -.item-to-show .ant-select-selector { +.item-to-show .ant-select-selector { border-radius: 6px !important; } @@ -555,4 +568,8 @@ tr:first-child { letter-spacing: -0.015em; color: #182233; margin-right: 20px; -} \ No newline at end of file +} + +.sort-icon.up { + transform: rotate(180deg); +} From f691fc86a1f750200c8a151ba765bea2a7f320e0 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 25 Jul 2023 13:50:14 +0100 Subject: [PATCH 39/78] Add bp string --- backend python/thormonitor_collect_data.py | 28 ++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/backend python/thormonitor_collect_data.py b/backend python/thormonitor_collect_data.py index bc5c671..140fa48 100644 --- a/backend python/thormonitor_collect_data.py +++ b/backend python/thormonitor_collect_data.py @@ -64,6 +64,7 @@ def gradDataAndSaveToDB(): """ gradDataAndSaveToDB used to update thornode_monitor_global database """ + # Grab nodes response_API = requests.get('https://thornode.ninerealms.com/thorchain/nodes') data = json.loads(response_API.text) # sanitise data remove any empty elements @@ -76,9 +77,30 @@ def gradDataAndSaveToDB(): commitQuery(query) # check if we are in a churn - + dataForExistingNodes, dataForNewNodes = splitNodes(nodes) for node in dataForExistingNodes: + bond_providersString = "" + for provider in node['bond_providers']['providers']: + bond_providersString = bond_providersString + provider["bond_address"] + "," + + if node['observe_chains'] is not None: + for item in node['observe_chains']: + if item['chain'] == "BTC": + if item['height'] > 10000000: + item['height'] = 0 + break + + if 'observe_chains' in node and node['observe_chains'] is not None and 'BTC' in node['observe_chains'] and \ + node['observe_chains']['BTC'] > 10000000: + node['observe_chains']['BTC'] = 0 + + if node['node_address'] == "thor1ytvzjwmf9pwuq95mdya4y9gale3864jz2ryu3r" or node['node_address'] == "thor1gqtwzazgdncthm2cuu947d0mvk3w5fkahm40qp": + for key in node['observe_chains']: + if key['chain'] == "BTC": + if key['height'] > 796920: + key['height'] = 0 + query = "UPDATE noderunner.thornode_monitor SET " \ "active_block_height = '{active_block_height}'," \ "bond_providers = '{bond_providers}'," \ @@ -93,6 +115,7 @@ def gradDataAndSaveToDB(): "preflight_status = '{preflight_status}'," \ "status = '{status}'," \ "status_since = '{status_since}'," \ + "bondProvidersString = '{bp_string}'," \ "version = '{version}' WHERE (node_address = '{node_address}');".format( active_block_height=node['active_block_height'], bond_providers=json.dumps(node['bond_providers']), @@ -105,7 +128,8 @@ def gradDataAndSaveToDB(): observe_chains=json.dumps(node['observe_chains']), preflight_status=json.dumps(node['preflight_status']), status=node['status'], - status_since=node['status_since'], version=node['version'], node_address=node['node_address']) + status_since=node['status_since'], bp_string=bond_providersString, version=node['version'], + node_address=node['node_address']) commitQuery(query) # Loop over new nodes and grab IP addr From 2258d0c8225d329b58838bae7e330f9d9bc0f75a Mon Sep 17 00:00:00 2001 From: dannydango Date: Wed, 26 Jul 2023 09:49:05 +0100 Subject: [PATCH 40/78] Double overview fix --- src/containers/A_monitor/activepage.js | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 00a7e63..2f742e3 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -1989,17 +1989,6 @@ We use string sort function if value is one of the arrays else do second sort nu
    -
    -
    - - -
    -
    - {showActive && ( <>
    From dd6f7ef70e8aac11d3de59ebe96b821859e34ade Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Wed, 26 Jul 2023 12:52:02 +0100 Subject: [PATCH 41/78] Add historical data and bug fix IP grabbing --- backend python/backPort.py | 93 ++++++++++++++++++++++ backend python/backend.py | 39 ++++++++- backend python/thormonitor_update_ips.py | 8 +- backend python/thornode_historical_data.py | 77 ++++++++++++++++++ 4 files changed, 214 insertions(+), 3 deletions(-) create mode 100644 backend python/backPort.py create mode 100644 backend python/thornode_historical_data.py diff --git a/backend python/backPort.py b/backend python/backPort.py new file mode 100644 index 0000000..cc2d22a --- /dev/null +++ b/backend python/backPort.py @@ -0,0 +1,93 @@ +import requests +import json +import time +import math +import datetime +from common import getDB, commitQuery, grabQuery + + + +def backPort(churn): + """ + backPort fills in historical database for the churn height passed in + + :param churn: height to grab data for + """ + + entries = len(grabQuery("SELECT * FROM noderunner.thornode_monitor_historic where churnHeight='{field}'".format( + field=churn))) + + if(entries != 0): + return + + status = 0 + while status != 200: + print("trying " + str(churn)) + response_API = requests.get('https://thornode-v1.ninerealms.com/thorchain/nodes?height=' + str(churn)) + status = response_API.status_code + + data = json.loads(response_API.text) + # sanitise data remove any empty elements + nodes = [x for x in data if '' != x['node_address']] + + # Loop over new nodes and grab IP addr + for node in nodes: + if node['ip_address'] != "": + ipData = grabQuery("SELECT * FROM noderunner.thornode_monitor_historic where ip_address='{field}'".format( + field=node['ip_address'])) + + response_code = 0 + if(len(ipData) == 0): + while response_code != 200: + response = requests.get("http://ip-api.com/json/" + node['ip_address']) + response_code = response.status_code + if response_code == 429: + print("rate limited wait 60seconds") + time.sleep(60) + elif response_code == 200: + ip_data = json.loads(response.text) + if (ip_data['status'] != "fail"): + node['ip_data'] = ip_data + else: + node['ip_data'] = {} + node['ip_data']['city'] = "" + node['ip_data']['isp'] = "" + else: + node['ip_data'] = {} + node['ip_data']['city'] = ipData[0]['location'] + node['ip_data']['isp'] = ipData[0]['isp'] + + else: + node['ip_data'] = {} + node['ip_data']['city'] = "" + node['ip_data']['isp'] = "" + + query = "INSERT INTO noderunner.thornode_monitor_historic (node_address, ip_address, location, isp, " \ + "active_block_height, bond_providers, bond, current_award, slash_points,forced_to_leave, " \ + "requested_to_leave, bond_address, preflight_status, status, " \ + "status_since, version, churnHeight) VALUES ('{node_address}', '{ip_address}','{city}','{isp}'," \ + "'{active_block_height}','{bond_providers}','{bond}','{current_award}','{slash_points}'," \ + "'{forced_to_leave}','{requested_to_leave}','{bond_address}'," \ + "'{preflight_status}','{status}','{status_since}'," \ + "'{version}','{churnHeight}')".format(node_address=node['node_address'], ip_address=node['ip_address'], + city=node['ip_data']['city'], isp=node['ip_data']['isp'], + active_block_height=node['active_block_height'], + bond_providers=json.dumps(node['bond_providers']), bond=int(node['total_bond']), + current_award=int(node['current_award']), slash_points=node['slash_points'], + forced_to_leave=int(node['forced_to_leave']), + requested_to_leave=int(node['requested_to_leave']), bond_address='', + preflight_status=json.dumps(node['preflight_status']), status=node['status'], + status_since=node['status_since'], version=node['version'], churnHeight=churn) + + commitQuery(query) + +def main(): + response_API = requests.get('https://midgard.ninerealms.com/v2/churns') + data = json.loads(response_API.text) + + for key in data: + backPort(int(key['height']) - 1) + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/backend python/backend.py b/backend python/backend.py index e206ecd..02dba25 100644 --- a/backend python/backend.py +++ b/backend python/backend.py @@ -1,12 +1,13 @@ import time from common import grabQuery -from flask import Flask +from flask import Flask, jsonify from flask_cors import CORS, cross_origin from thormonitor_collect_data import gradDataAndSaveToDB from thormonitor_update_ips import updateIPs from thornode_collect_data_global import collectDataGlobal from thormonitor_collect_data_rpc_bifrost import biFrostGrabDataAndSaveToDB +from thornode_historical_data import checkIfNewChurn from threading import Thread @@ -32,6 +33,41 @@ def grabData(): return {'data': currentDBData, 'globalData': globalData[0]} +@app.route('/thor/api/grabBond=', methods=['GET']) +@cross_origin() +def grabBond(node): + data = grabQuery("SELECT * FROM noderunner.thornode_monitor_historic where node_address='{field}' ORDER BY churnHeight ASC".format( + field=node)) + + interim = {} + for key in data: + interim[key['churnHeight']] = key['bond'] + + return jsonify(interim) + +@app.route('/thor/api/grabSlashes=', methods=['GET']) +@cross_origin() +def grabSlashes(node): + data = grabQuery("SELECT * FROM noderunner.thornode_monitor_historic where node_address='{field}' ORDER BY churnHeight ASC".format( + field=node)) + + interim = {} + for key in data: + interim[key['churnHeight']] = key['slash_points'] + + return jsonify(interim) + +@app.route('/thor/api/grabRewards=', methods=['GET']) +@cross_origin() +def grabRewards(node): + data = grabQuery("SELECT * FROM noderunner.thornode_monitor_historic where node_address='{field}' ORDER BY churnHeight ASC".format( + field=node)) + + interim = {} + for key in data: + interim[key['churnHeight']] = key['current_award'] + + return jsonify(interim) def main(): """ @@ -46,6 +82,7 @@ def main(): updateIPs() collectDataGlobal() biFrostGrabDataAndSaveToDB() + checkIfNewChurn() except Exception as e: print(e) time.sleep(60) diff --git a/backend python/thormonitor_update_ips.py b/backend python/thormonitor_update_ips.py index ffdc7a1..dcfdbe9 100644 --- a/backend python/thormonitor_update_ips.py +++ b/backend python/thormonitor_update_ips.py @@ -40,7 +40,11 @@ def updateIPs(): time.sleep(60) elif response_code == 200: ip_data = json.loads(response.text) - query = "UPDATE noderunner.thornode_monitor SET ip_address = '{ip}', location = '{city}', " \ - "isp = '{isp}' WHERE node_address = '{node_address}' ".format(ip=mismatch[key],city=ip_data['city'],isp=ip_data['isp'],node_address=key) + if(ip_data['status'] != "fail"): + query = "UPDATE noderunner.thornode_monitor SET ip_address = '{ip}', location = '{city}', " \ + "isp = '{isp}' WHERE node_address = '{node_address}' ".format(ip=mismatch[key],city=ip_data['city'],isp=ip_data['isp'],node_address=key) + else: + query = "UPDATE noderunner.thornode_monitor SET ip_address = '{ip}', location = '{city}', " \ + "isp = '{isp}' WHERE node_address = '{node_address}' ".format(ip=mismatch[key],city="",isp="",node_address=key) commitQuery(query) diff --git a/backend python/thornode_historical_data.py b/backend python/thornode_historical_data.py new file mode 100644 index 0000000..45bda93 --- /dev/null +++ b/backend python/thornode_historical_data.py @@ -0,0 +1,77 @@ +import requests +import json +import time +import math +import datetime +from common import getDB, commitQuery, grabQuery + + + +def checkIfNewChurn(): + """ + checkIfNewChurn has a look if we have just passed a churn, if so it fills in the historical DB + """ + lastChurn = (grabQuery('SELECT lastChurn FROM noderunner.thornode_monitor_global'))[0]['lastChurn'] - 1 + + entries = len(grabQuery("SELECT * FROM noderunner.thornode_monitor_historic where churnHeight='{field}'".format( + field=lastChurn))) + + if(entries != 0): + return + + response_API = requests.get('https://thornode.ninerealms.com/thorchain/nodes?height=' + str(lastChurn)) + data = json.loads(response_API.text) + # sanitise data remove any empty elements + nodes = [x for x in data if '' != x['node_address']] + + # Loop over new nodes and grab IP addr + for node in nodes: + if node['ip_address'] != "": + ipData = grabQuery("SELECT * FROM noderunner.thornode_monitor where ip_address='{field}'".format( + field=node['ip_address'])) + + response_code = 0 + if(len(ipData) == 0): + while response_code != 200: + response = requests.get("http://ip-api.com/json/" + node['ip_address']) + response_code = response.status_code + if response_code == 429: + print("rate limited wait 60seconds") + time.sleep(60) + elif response_code == 200: + ip_data = json.loads(response.text) + if (ip_data['status'] != "fail"): + node['ip_data'] = ip_data + else: + node['ip_data'] = {} + node['ip_data']['city'] = "" + node['ip_data']['isp'] = "" + else: + node['ip_data'] = {} + node['ip_data']['city'] = ipData[0]['location'] + node['ip_data']['isp'] = ipData[0]['isp'] + + else: + node['ip_data'] = {} + node['ip_data']['city'] = "" + node['ip_data']['isp'] = "" + + query = "INSERT INTO noderunner.thornode_monitor_historic (node_address, ip_address, location, isp, " \ + "active_block_height, bond_providers, bond, current_award, slash_points,forced_to_leave, " \ + "requested_to_leave, bond_address, preflight_status, status, " \ + "status_since, version, churnHeight) VALUES ('{node_address}', '{ip_address}','{city}','{isp}'," \ + "'{active_block_height}','{bond_providers}','{bond}','{current_award}','{slash_points}'," \ + "'{forced_to_leave}','{requested_to_leave}','{bond_address}'," \ + "'{preflight_status}','{status}','{status_since}'," \ + "'{version}','{churnHeight}')".format(node_address=node['node_address'], ip_address=node['ip_address'], + city=node['ip_data']['city'], isp=node['ip_data']['isp'], + active_block_height=node['active_block_height'], + bond_providers=json.dumps(node['bond_providers']), bond=int(node['total_bond']), + current_award=int(node['current_award']), slash_points=node['slash_points'], + forced_to_leave=int(node['forced_to_leave']), + requested_to_leave=int(node['requested_to_leave']), bond_address='', + preflight_status=json.dumps(node['preflight_status']), status=node['status'], + status_since=node['status_since'], version=node['version'], churnHeight=lastChurn) + + commitQuery(query) + From 2ac27e8d7582dd52ab6aef52efd42b03985ea837 Mon Sep 17 00:00:00 2001 From: dannydango Date: Mon, 31 Jul 2023 13:02:04 +0100 Subject: [PATCH 42/78] Graph fix --- src/containers/A_monitor/CustomLineChart.js | 24 + src/containers/A_monitor/activepage.js | 285 ++- src/containers/A_monitor/monitorpage.js | 287 ++- src/containers/A_monitor/otherpage.js | 2303 ++++++++++++++----- src/containers/A_monitor/standbypage.js | 2275 +++++++++++++----- src/containers/A_monitor/styles.css | 4 + 6 files changed, 3943 insertions(+), 1235 deletions(-) create mode 100644 src/containers/A_monitor/CustomLineChart.js diff --git a/src/containers/A_monitor/CustomLineChart.js b/src/containers/A_monitor/CustomLineChart.js new file mode 100644 index 0000000..6372421 --- /dev/null +++ b/src/containers/A_monitor/CustomLineChart.js @@ -0,0 +1,24 @@ +import React, { Component } from "react"; +import { Chart } from "chart.js"; + +class CustomLineChart extends Component { + chartRef = React.createRef(); + + componentDidMount() { + this.chartInstance = new Chart(this.chartRef.current, { + type: "line", + data: this.props.data, + options: this.props.options, + }); + } + + componentWillUnmount() { + this.chartInstance.destroy(); + } + + render() { + return ; + } +} + +export default CustomLineChart; diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 2f742e3..336a9b2 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -1,5 +1,7 @@ import React, { Component, useState } from "react"; import isEmpty from "lodash/isEmpty"; +import { Line } from "react-chartjs-2"; +import CustomLineChart from "./CustomLineChart"; import Modals from "@iso/components/Feedback/Modal"; import Popover from "@iso/components/uielements/popover"; import { getData, setCookie, getCookie } from "CommonFunctions"; @@ -531,11 +533,18 @@ const BondProviderPopOver = ({ data }) => { const NodeTable = ({ nodeData, clickSortHeader, + handleClickBond, + handleClickRewards, + handleClickSlashes, sortColour, maxChainHeights, chains, addToFav, whichHeart, + chartDataConfig, + bondOptions, + rewardsOptions, + slashesOptions, visibleColumns = { ...defaulColumns }, sortBy = "", sortDirection = "", @@ -1306,12 +1315,32 @@ const NodeTable = ({ handleClickBond(item.node_address)} > - ᚱ - {parseInt( - (item.bond / 100000000).toFixed() - ).toLocaleString()} + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Bond Value Over Time for ${item.node_address.slice( + -4 + )}`} + trigger="click" + overlayClassName="my-custom-popover" + > + ᚱ + {parseInt( + (item.bond / 100000000).toFixed() + ).toLocaleString()} +
    handleClickRewards(item.node_address)} > - ᚱ - {parseInt( - (item.current_award / 100000000).toFixed() - ).toLocaleString()} + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Rewards Over Time for ${item.node_address.slice( + -4 + )}`} + trigger="click" + overlayClassName="my-custom-popover" + > + ᚱ + {parseInt( + (item.current_award / 100000000).toFixed() + ).toLocaleString()} +
    handleClickSlashes(item.node_address)} > - {parseInt(item.slash_points).toLocaleString()} + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Slashes Over Time for ${item.node_address.slice( + -4 + )}`} + trigger="click" + overlayClassName="my-custom-popover" + > + {parseInt(item.slash_points).toLocaleString()} +
    { + const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y), + })); + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + + handleClickRewards = async (node_address) => { + const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y), + })); + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + + handleClickBond = async (node_address) => { + const url = `https://api.liquify.com/thor/api/grabBond=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Math.round(Number(y) / 100000000), + })); + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; searchBar() { return ( @@ -1914,6 +2043,121 @@ We use string sort function if value is one of the arrays else do second sort nu const showOthers = isEmpty(nodesFilter) || noNodesFilter || nodesFilter.orthers; + const chartDataConfig = this.state.chartData + ? { + datasets: [ + { + label: "Value", + data: this.state.chartData, + fill: false, + backgroundColor: "rgb(28, 57, 182)", + borderColor: "rgba(28, 57, 187, 0.2)", + }, + ], + } + : {}; + + const slashesOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Height", + }, + ticks: { + callback: function (value, index, values) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Slashes Value", + }, + }, + ], + }, + } + : {}; + + const rewardsOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Height", + }, + ticks: { + callback: function (value, index, values) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Reward Value", + }, + }, + ], + }, + } + : {}; + + const bondOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: Math.min(...this.state.chartData.map((data) => data.x)), + stepSize: 20000, + callback: function (value, index, values) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Bond Value", + }, + ticks: { + min: Math.min(...this.state.chartData.map((data) => data.y)), + stepSize: 20000, + callback: function (value) { + return value.toString(); + }, + }, + }, + ], + }, + } + : {}; + return (
    )} {activeNodes.length === 0 && ( @@ -2061,11 +2312,18 @@ We use string sort function if value is one of the arrays else do second sort nu addToFav={this.addToFav.bind(this)} nodeData={standByNodes} clickSortHeader={this.clickSortHeader.bind(this)} + handleClickBond={this.handleClickBond} + handleClickRewards={this.handleClickRewards} + handleClickSlashes={this.handleClickSlashes} sortColour={this.sortColour.bind(this)} maxChainHeights={this.state.maxChainHeights} chains={false} sortBy={this.state.sortBy} sortDirection={this.state.sortDirection} + chartDataConfig={chartDataConfig} + bondOptions={bondOptions} + rewardsOptions={rewardsOptions} + slashesOptions={slashesOptions} /> )} {standByNodes.length === 0 && ( @@ -2107,11 +2365,18 @@ We use string sort function if value is one of the arrays else do second sort nu addToFav={this.addToFav.bind(this)} nodeData={whitelistedNodes} clickSortHeader={this.clickSortHeader.bind(this)} + handleClickBond={this.handleClickBond} + handleClickRewards={this.handleClickRewards} + handleClickSlashes={this.handleClickSlashes} sortColour={this.sortColour.bind(this)} maxChainHeights={this.state.maxChainHeights} chains={false} sortBy={this.state.sortBy} sortDirection={this.state.sortDirection} + chartDataConfig={chartDataConfig} + bondOptions={bondOptions} + rewardsOptions={rewardsOptions} + slashesOptions={slashesOptions} /> )} {whitelistedNodes.length === 0 && ( diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 7bd8d0e..021bd55 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -1,7 +1,8 @@ import React, { Component, useState } from "react"; import isEmpty from "lodash/isEmpty"; import { UpOutlined, DownOutlined } from "@ant-design/icons"; - +import { Line } from "react-chartjs-2"; +import CustomLineChart from "./CustomLineChart"; //import LayoutContentWrapper from '@iso/components/utility/layoutWrapper'; //import LayoutContent from '@iso/components/utility/layoutContent'; import Modals from "@iso/components/Feedback/Modal"; @@ -547,11 +548,18 @@ const BondProviderPopOver = ({ data }) => { const NodeTable = ({ nodeData, clickSortHeader, + handleClickBond, + handleClickRewards, + handleClickSlashes, sortColour, maxChainHeights, chains, addToFav, whichHeart, + chartDataConfig, + bondOptions, + rewardsOptions, + slashesOptions, visibleColumns = { ...defaulColumns }, sortBy = "", sortDirection = "", @@ -1331,11 +1339,31 @@ const NodeTable = ({ handleClickBond(item.node_address)} > - ᚱ - {parseInt( - (item.bond / 100000000).toFixed() - ).toLocaleString()} + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Bond Value Over Time for ${item.node_address.slice( + -4 + )}`} + trigger="click" + overlayClassName="my-custom-popover" + > + ᚱ + {parseInt( + (item.bond / 100000000).toFixed() + ).toLocaleString()} +
    handleClickRewards(item.node_address)} > - ᚱ - {parseInt( - (item.current_award / 100000000).toFixed() - ).toLocaleString()} + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Rewards Over Time for ${item.node_address.slice( + -4 + )}`} + trigger="click" + overlayClassName="my-custom-popover" + > + ᚱ + {parseInt( + (item.current_award / 100000000).toFixed() + ).toLocaleString()} +
    + handleClickSlashes(item.node_address)} > - {parseInt(item.slash_points).toLocaleString()} + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Slashes Over Time for ${item.node_address.slice( + -4 + )}`} + trigger="click" + overlayClassName="my-custom-popover" + > + {parseInt(item.slash_points).toLocaleString()} +
    + { + const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y), + })); + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + + handleClickRewards = async (node_address) => { + const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y), + })); + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + + handleClickBond = async (node_address) => { + const url = `https://api.liquify.com/thor/api/grabBond=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Math.round(Number(y) / 100000000), + })); + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + searchBar() { return (
    @@ -1932,6 +2063,121 @@ We use string sort function if value is one of the arrays else do second sort nu const showOthers = isEmpty(nodesFilter) || noNodesFilter || nodesFilter.orthers; + const chartDataConfig = this.state.chartData + ? { + datasets: [ + { + label: "Value", + data: this.state.chartData, + fill: false, + backgroundColor: "rgb(28, 57, 182)", + borderColor: "rgba(28, 57, 187, 0.2)", + }, + ], + } + : {}; + + const slashesOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Height", + }, + ticks: { + callback: function (value, index, values) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Slashes Value", + }, + }, + ], + }, + } + : {}; + + const rewardsOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Height", + }, + ticks: { + callback: function (value, index, values) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Reward Value", + }, + }, + ], + }, + } + : {}; + + const bondOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: Math.min(...this.state.chartData.map((data) => data.x)), + stepSize: 20000, + callback: function (value, index, values) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Bond Value", + }, + ticks: { + min: Math.min(...this.state.chartData.map((data) => data.y)), + stepSize: 20000, + callback: function (value) { + return value.toString(); + }, + }, + }, + ], + }, + } + : {}; + return (
    )} {activeNodes.length === 0 && ( @@ -2097,11 +2350,18 @@ We use string sort function if value is one of the arrays else do second sort nu addToFav={this.addToFav.bind(this)} nodeData={standByNodes} clickSortHeader={this.clickSortHeader.bind(this)} + handleClickBond={this.handleClickBond} + handleClickRewards={this.handleClickRewards} + handleClickSlashes={this.handleClickSlashes} sortColour={this.sortColour.bind(this)} maxChainHeights={this.state.maxChainHeights} chains={false} sortBy={this.state.sortBy} sortDirection={this.state.sortDirection} + chartDataConfig={chartDataConfig} + bondOptions={bondOptions} + rewardsOptions={rewardsOptions} + slashesOptions={slashesOptions} /> )} {standByNodes.length === 0 && ( @@ -2143,11 +2403,18 @@ We use string sort function if value is one of the arrays else do second sort nu addToFav={this.addToFav.bind(this)} nodeData={whitelistedNodes} clickSortHeader={this.clickSortHeader.bind(this)} + handleClickBond={this.handleClickBond} + handleClickRewards={this.handleClickRewards} + handleClickSlashes={this.handleClickSlashes} sortColour={this.sortColour.bind(this)} maxChainHeights={this.state.maxChainHeights} chains={false} sortBy={this.state.sortBy} sortDirection={this.state.sortDirection} + chartDataConfig={chartDataConfig} + bondOptions={bondOptions} + rewardsOptions={rewardsOptions} + slashesOptions={slashesOptions} /> )} {whitelistedNodes.length === 0 && ( diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index e282065..cbb6e6b 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -1,84 +1,118 @@ -import React, { Component, useState } from 'react'; -import isEmpty from 'lodash/isEmpty'; -import Modals from '@iso/components/Feedback/Modal'; -import Popover from '@iso/components/uielements/popover'; -import { getData, setCookie, getCookie } from 'CommonFunctions' -import { ModalContent } from '../Feedback/Modal/Modal.styles'; -import { Layout, Button, Input, Breadcrumb, Select } from 'antd'; +import React, { Component, useState } from "react"; +import isEmpty from "lodash/isEmpty"; +import Modals from "@iso/components/Feedback/Modal"; +import Popover from "@iso/components/uielements/popover"; +import { getData, setCookie, getCookie } from "CommonFunctions"; +import { ModalContent } from "../Feedback/Modal/Modal.styles"; +import { Layout, Button, Input, Breadcrumb, Select } from "antd"; +import { Line } from "react-chartjs-2"; +import CustomLineChart from "./CustomLineChart"; import "./styles.css"; -import { Link } from 'react-router-dom'; -import { PUBLIC_ROUTE } from '../../route.constants'; -import { SearchOutlined, LeftOutlined , RightOutlined } from '@ant-design/icons'; - -import heartBlank from '@iso/assets/images/heart-blank.png'; -import heartFull from '@iso/assets/images/heart-full.png'; - -import imageDO from '@iso/assets/images/do.png'; -import imageAWS from '@iso/assets/images/aws.png'; -import imageGCP from '@iso/assets/images/gcp.png'; -import imageAZURE from '@iso/assets/images/azure.png'; -import imageHETZNER from '@iso/assets/images/hetzner.png'; -import imageVULTR from '@iso/assets/images/vultr.png'; -import imageLeaseweb from '@iso/assets/images/leaseweb.png'; -import imageDatacamp from '@iso/assets/images/datacamp.png'; -import imageComcast from '@iso/assets/images/comcast.png'; -import imageChoopa from '@iso/assets/images/choopa.png'; -import imageChartercoms from '@iso/assets/images/chartercoms.png'; -import imageATandT from '@iso/assets/images/atandt.png'; -import imageZenlayer from '@iso/assets/images/zenlayer.png'; - -import binance from '@iso/assets/images/binance.png'; -import eth from '@iso/assets/images/eth.png'; -import bitcoin from '@iso/assets/images/bitcoin.png'; -import litecoin from '@iso/assets/images/litecoin.png'; -import bitcoincash from '@iso/assets/images/bitcoincash.png'; -import dogecoin from '@iso/assets/images/dogecoin.png'; -import gaia from '@iso/assets/images/atom.png'; -import thornode from '@iso/assets/images/thornode.svg'; -import avax from '@iso/assets/images/avax.png'; - -import blockIcon from '@iso/assets/images/overview/block_icon.svg'; -import highTradingIcon from '@iso/assets/images/overview/24high_trading.svg'; -import lowTradingIcon from '@iso/assets/images/overview/24low_trading.svg'; -import bondIcon from '@iso/assets/images/overview/Bond_icon.svg'; -import churnsIcon from '@iso/assets/images/overview/churns_icon.svg'; -import marcketCapIcon from '@iso/assets/images/overview/marcket_Cap.svg'; -import mcapRankIcon from '@iso/assets/images/overview/mcap_rank.svg'; -import runeUsdtIcon from '@iso/assets/images/overview/rune_usdt.svg'; -import timeIcon from '@iso/assets/images/overview/time_icon.svg'; -import totalSupplyIcon from '@iso/assets/images/overview/total_supply.svg'; -import filterIcon from '@iso/assets/images/overview/filter.svg'; -import loadingIcon from '@iso/assets/images/overview/loading.png'; -import githubIcon from '@iso/assets/images/overview/github_link_icon.svg'; -import twitterIcon from '@iso/assets/images/overview/twitter_link_icon.svg'; -import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; - -import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; -import powerIcon from '@iso/assets/images/overview/power.svg'; -import activeIcon from '@iso/assets/images/overview/active_icon.svg'; -import arrowDownIcon from '@iso/assets/images/overview/arrow-down.svg'; - - -import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; -const leaveIcon = +import { Link } from "react-router-dom"; +import { PUBLIC_ROUTE } from "../../route.constants"; +import { SearchOutlined, LeftOutlined, RightOutlined } from "@ant-design/icons"; + +import heartBlank from "@iso/assets/images/heart-blank.png"; +import heartFull from "@iso/assets/images/heart-full.png"; + +import imageDO from "@iso/assets/images/do.png"; +import imageAWS from "@iso/assets/images/aws.png"; +import imageGCP from "@iso/assets/images/gcp.png"; +import imageAZURE from "@iso/assets/images/azure.png"; +import imageHETZNER from "@iso/assets/images/hetzner.png"; +import imageVULTR from "@iso/assets/images/vultr.png"; +import imageLeaseweb from "@iso/assets/images/leaseweb.png"; +import imageDatacamp from "@iso/assets/images/datacamp.png"; +import imageComcast from "@iso/assets/images/comcast.png"; +import imageChoopa from "@iso/assets/images/choopa.png"; +import imageChartercoms from "@iso/assets/images/chartercoms.png"; +import imageATandT from "@iso/assets/images/atandt.png"; +import imageZenlayer from "@iso/assets/images/zenlayer.png"; + +import binance from "@iso/assets/images/binance.png"; +import eth from "@iso/assets/images/eth.png"; +import bitcoin from "@iso/assets/images/bitcoin.png"; +import litecoin from "@iso/assets/images/litecoin.png"; +import bitcoincash from "@iso/assets/images/bitcoincash.png"; +import dogecoin from "@iso/assets/images/dogecoin.png"; +import gaia from "@iso/assets/images/atom.png"; +import thornode from "@iso/assets/images/thornode.svg"; +import avax from "@iso/assets/images/avax.png"; + +import blockIcon from "@iso/assets/images/overview/block_icon.svg"; +import highTradingIcon from "@iso/assets/images/overview/24high_trading.svg"; +import lowTradingIcon from "@iso/assets/images/overview/24low_trading.svg"; +import bondIcon from "@iso/assets/images/overview/Bond_icon.svg"; +import churnsIcon from "@iso/assets/images/overview/churns_icon.svg"; +import marcketCapIcon from "@iso/assets/images/overview/marcket_Cap.svg"; +import mcapRankIcon from "@iso/assets/images/overview/mcap_rank.svg"; +import runeUsdtIcon from "@iso/assets/images/overview/rune_usdt.svg"; +import timeIcon from "@iso/assets/images/overview/time_icon.svg"; +import totalSupplyIcon from "@iso/assets/images/overview/total_supply.svg"; +import filterIcon from "@iso/assets/images/overview/filter.svg"; +import loadingIcon from "@iso/assets/images/overview/loading.png"; +import githubIcon from "@iso/assets/images/overview/github_link_icon.svg"; +import twitterIcon from "@iso/assets/images/overview/twitter_link_icon.svg"; +import liquifyLogo from "@iso/assets/images/overview/liquify_logo.svg"; + +import threeDotsIcon from "@iso/assets/images/overview/dots_three_circle.svg"; +import powerIcon from "@iso/assets/images/overview/power.svg"; +import activeIcon from "@iso/assets/images/overview/active_icon.svg"; +import arrowDownIcon from "@iso/assets/images/overview/arrow-down.svg"; + +import VisibleColumn from "@iso/components/VisibleColumn/VisibleColumn"; +const leaveIcon = ( + +); const { Header, Footer, Content } = Layout; -const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} -const tdStyle = {minWidth: 60, textAlign: 'right', fontSize: 14, padding: '10px 15px'} -const trStyle = {height: 45} -const iconStyle = {minWidth: 25, padding: 5, paddingLeft: 10, paddingRight: 10} - +const headerStyle = { + cursor: "pointer", + padding: "12px 15px", + fontSize: 15, + color: "#ffffff", + backgroundColor: "rgba(24, 34, 51, 0.4)", + height: 55, + fontWeight: 600, +}; +const tdStyle = { + minWidth: 60, + textAlign: "right", + fontSize: 14, + padding: "10px 15px", +}; +const trStyle = { height: 45 }; +const iconStyle = { + minWidth: 25, + padding: 5, + paddingLeft: 10, + paddingRight: 10, +}; async function copyToClipWithPopup(msg, ip) { - copyToClipboard(ip) - popUpModal(msg, ip) + copyToClipboard(ip); + popUpModal(msg, ip); } -const copyToClipboard = str => { +const copyToClipboard = (str) => { if (navigator && navigator.clipboard && navigator.clipboard.writeText) return navigator.clipboard.writeText(str); - return Promise.reject('The Clipboard API is not available.'); + return Promise.reject("The Clipboard API is not available."); }; function popUpModal(msg, ip) { @@ -92,256 +126,430 @@ function popUpModal(msg, ip) { ), onOk() {}, - okText: 'OK', - cancelText: 'Cancel', - className: 'feedback-modal' + okText: "OK", + cancelText: "Cancel", + className: "feedback-modal", }); } const SortIcon = ({ sortBy, column, sortDirection }) => { if (sortBy == column) { - return + return ( + + ); } - return null -} + return null; +}; -const Icons = ({address, ip_address, addToFav, whichHeart}) => { - const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}` - const secondURL = `https://viewblock.io/thorchain/address/${address}` +const Icons = ({ address, ip_address, addToFav, whichHeart }) => { + const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}`; + const secondURL = `https://viewblock.io/thorchain/address/${address}`; return ( - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + - - copyToClipWithPopup('IP Copied to clipboard:', ip_address)}> - - - - + + + copyToClipWithPopup("IP Copied to clipboard:", ip_address) + } + > + + + + - #addToFav(address)} src={whichHeart(address)} style={{ cursor:'pointer', marginLeft: 5, marginTop: 2, width: 15, height: 15}}/> + # addToFav(address)} + src={whichHeart(address)} + style={{ + cursor: "pointer", + marginLeft: 5, + marginTop: 2, + width: 15, + height: 15, + }} + /> -) -} - -const GlobalData = ({ globalData, animateBlockCount, state}) => { + ); +}; - let timeToDisplay = ''; - let msgTitle = '' - if (globalData?.churnTry && globalData?.retiring === 'false') { - msgTitle = '(CHURN) RETRY IN' - timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m` - } else if (globalData?.retiring === 'true') { - msgTitle = '(CHURN) CURRENTLY CHURNING' - timeToDisplay = 'Churning' +const GlobalData = ({ globalData, animateBlockCount, state }) => { + let timeToDisplay = ""; + let msgTitle = ""; + if (globalData?.churnTry && globalData?.retiring === "false") { + msgTitle = "(CHURN) RETRY IN"; + timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m`; + } else if (globalData?.retiring === "true") { + msgTitle = "(CHURN) CURRENTLY CHURNING"; + timeToDisplay = "Churning"; } else { - msgTitle = '(CHURN) TIME UNTIL' - timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m` + msgTitle = "(CHURN) TIME UNTIL"; + timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m`; } return ( <> -
    - # -
    -
    CURRENT BLOCK
    -
    {parseInt(globalData.maxHeight).toLocaleString()}
    +
    + # +
    +
    CURRENT BLOCK
    +
    + {parseInt(globalData.maxHeight).toLocaleString()} +
    -
    - # -
    -
    {msgTitle}
    -
    {timeToDisplay}
    +
    + # +
    +
    {msgTitle}
    +
    {timeToDisplay}
    -
    - # -
    -
    TOTAL BONDED VALUE
    -
    ᚱ{state.activeNodes.length>0 ? parseInt((state.activeNodes.map(item => item.bond).reduce((prev, next) => prev + next))/100000000).toLocaleString() : '0'}
    +
    + # +
    +
    TOTAL BONDED VALUE
    +
    + ᚱ + {state.activeNodes.length > 0 + ? parseInt( + state.activeNodes + .map((item) => item.bond) + .reduce((prev, next) => prev + next) / 100000000 + ).toLocaleString() + : "0"} +
    -
    - # -
    -
    MARKET CAP
    -
    ${globalData?.coingecko?.market_cap?.toLocaleString()}
    +
    + # +
    +
    MARKET CAP
    +
    + ${globalData?.coingecko?.market_cap?.toLocaleString()} +
    -
    - # -
    -
    24 HR VOLUME
    -
    ${globalData?.coingecko?.total_volume?.toLocaleString()}
    +
    + # +
    +
    24 HR VOLUME
    +
    + ${globalData?.coingecko?.total_volume?.toLocaleString()} +
    -
    - # -
    -
    MAX EFFECTIVE BOND
    -
    ᚱ{parseInt(globalData.maxEffectiveStake/100000000).toLocaleString()}
    +
    + # +
    +
    MAX EFFECTIVE BOND
    +
    + ᚱ + {parseInt( + globalData.maxEffectiveStake / 100000000 + ).toLocaleString()} +
    - ) -} + ); +}; const CoinGeckoData = ({ globalData }) => { return ( <> -
    - # -
    -
    PRICE
    -
    ${globalData?.coingecko?.current_price?.toLocaleString()}
    +
    + # +
    +
    PRICE
    +
    + ${globalData?.coingecko?.current_price?.toLocaleString()} +
    -
    - # -
    -
    24 HR HIGH
    -
    ${globalData?.coingecko?.high_24h}
    +
    + # +
    +
    24 HR HIGH
    +
    + ${globalData?.coingecko?.high_24h} +
    -
    - # -
    -
    24 HR LOW
    -
    ${globalData?.coingecko?.low_24h}
    +
    + # +
    +
    24 HR LOW
    +
    + ${globalData?.coingecko?.low_24h} +
    -
    - # -
    -
    MARKET CAP RANK
    -
    {globalData?.coingecko?.market_cap_rank}
    +
    + # +
    +
    MARKET CAP RANK
    +
    + {globalData?.coingecko?.market_cap_rank} +
    -
    - # -
    -
    TOTAL SUPPLY
    -
    ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()}
    +
    + # +
    +
    TOTAL SUPPLY
    +
    + ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()} +
    - ) -} - - -const ReturnIspImage = ({isp}) => { + ); +}; - const style = {width: 25, height: 25} +const ReturnIspImage = ({ isp }) => { + const style = { width: 25, height: 25 }; - if (isp ==='Amazon.com, Inc.' || isp === 'Amazon Technologies Inc.' || isp === 'Amazon.com'){ - return # + if ( + isp === "Amazon.com, Inc." || + isp === "Amazon Technologies Inc." || + isp === "Amazon.com" + ) { + return #; } - if (isp ==='DigitalOcean, LLC' || isp==='DigitalOcean'){ - return # + if (isp === "DigitalOcean, LLC" || isp === "DigitalOcean") { + return #; } - if (isp ==='Google LLC'){ - return # + if (isp === "Google LLC") { + return #; } - if (isp ==='Microsoft Corporation'){ - return # + if (isp === "Microsoft Corporation") { + return #; } - if (isp ==='Hetzner Online GmbH'){ - return # + if (isp === "Hetzner Online GmbH") { + return #; } - if (isp ==='The Constant Company' || isp === 'The Constant Company, LLC'){ - return # + if (isp === "The Constant Company" || isp === "The Constant Company, LLC") { + return #; } - if (isp ==='Leaseweb UK Limited' || isp === 'Leaseweb USA, Inc.'){ - return # + if (isp === "Leaseweb UK Limited" || isp === "Leaseweb USA, Inc.") { + return #; } - if (isp ==='Datacamp Limited'){ - return # + if (isp === "Datacamp Limited") { + return #; } - if (isp ==='Comcast Cable Communications, LLC'){ - return # + if (isp === "Comcast Cable Communications, LLC") { + return #; } - if (isp ==='Choopa'){ - return # + if (isp === "Choopa") { + return #; } - if (isp ==='Charter Communications Inc'){ - return # + if (isp === "Charter Communications Inc") { + return #; } - if (isp ==='AT&T Services, Inc.'){ - return # + if (isp === "AT&T Services, Inc.") { + return #; } - - if (isp ==='Zenlayer Inc'){ - return # + + if (isp === "Zenlayer Inc") { + return #; } - return '-' -} + return "-"; +}; -const ChainTD = ({chain, obchains, maxChainHeights}) => { - const delta = obchains[chain]-maxChainHeights[chain] +const ChainTD = ({ chain, obchains, maxChainHeights }) => { + const delta = obchains[chain] - maxChainHeights[chain]; return ( - {delta===0 ? 'OK' : delta.toString()} - ) -} + + {delta === 0 ? "OK" : delta.toString()} + + ); +}; -const BondProviderPopOver = ({data}) => { - const totalBond = data.map(item=>parseInt(item.bond)).reduce((a, b) => a + b, 0) +const BondProviderPopOver = ({ data }) => { + const totalBond = data + .map((item) => parseInt(item.bond)) + .reduce((a, b) => a + b, 0); - const d = data.map((item,index) => { + const d = data.map((item, index) => { return ( -
    - {item.bond_address.substring(item.bond_address.length-4, item.bond_address.length)} - {((item.bond/totalBond)*100).toFixed(2)}% - ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} -
    - ) - }) - return d -} +
    + + {item.bond_address.substring( + item.bond_address.length - 4, + item.bond_address.length + )} + + {((item.bond / totalBond) * 100).toFixed(2)}% + + ᚱ{parseInt((item.bond / 100000000).toFixed()).toLocaleString()} + +
    + ); + }); + return d; +}; -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = '', sortDirection = ''}) => { +const NodeTable = ({ + nodeData, + clickSortHeader, + handleClickBond, + handleClickRewards, + handleClickSlashes, + sortColour, + maxChainHeights, + chains, + addToFav, + whichHeart, + chartDataConfig, + bondOptions, + rewardsOptions, + slashesOptions, + visibleColumns = { ...defaulColumns }, + sortBy = "", + sortDirection = "", +}) => { const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(100); @@ -357,7 +565,9 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai }; const handleNext = () => { - setCurrentPage((prevPage) => (prevPage === totalPages ? prevPage : prevPage + 1)); + setCurrentPage((prevPage) => + prevPage === totalPages ? prevPage : prevPage + 1 + ); }; const handlePrev = () => { @@ -382,215 +592,800 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai const currentItems = nodeData.slice(indexOfFirstItem, indexOfLastItem); const getHeaderClassName = (key) => { - return visibleColumns && visibleColumns[key] ? 'tableHeader' : 'tableHeader hidden' + return visibleColumns && visibleColumns[key] + ? "tableHeader" + : "tableHeader hidden"; }; const getCellClassName = (key) => { - return visibleColumns && visibleColumns[key] ? '' : 'hidden' + return visibleColumns && visibleColumns[key] ? "" : "hidden"; }; const updatePagingItem = (value) => { - setItemsPerPage(value) + setItemsPerPage(value); }; - return (<> -
    - Nodes per page: - - +
    +
    +
    + + + + + + + + + + + + + + + + - - - - + + + {chains && ( + <> + + + + + + + + + + )} + + + + {currentItems.map((item, index) => ( + + + + + + + + + - - - - - - {/* */} - - - - - {chains && - <> - - - - - - - - - - } - - ))} - - -
    + clickSortHeader("node_address")}> + Validator Nodes + + + + clickSortHeader("age")}> + Age + + + + clickSortHeader("action")}> + Action + + + + clickSortHeader("isp")}> + ISP + + + + clickSortHeader("location")}> + Location + + + + clickSortHeader("bond")}> + Bond + + + + clickSortHeader("bond_providers")}> + Providers + + + + clickSortHeader("current_award")}> + Rewards + + + + clickSortHeader("apy")}> + APY + + + + clickSortHeader("slash_points")}> + Slashes + + + + clickSortHeader("score")}> + Score + + + - copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {`...${item.node_address.substring(item.node_address.length - 4)}`} - - - - - - {item.age.toFixed(2)}{item.action} - clickSortHeader("version")}> + Version + + + + - - - - {item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } - title={'Bond Providers'} - trigger="hover" - >{item.bond_providers.providers.length} + clickSortHeader("leave")}> + {leaveIcon} + + + + + RPC + + BFR + + # + + # + + # + + # + + # + + # + + # + + # +
    + {index + 1} + + + + copyToClipWithPopup( + "Node address copied to clipboard:", + item.node_address + ) + } + > + {`...${item.node_address.substring( + item.node_address.length - 4 + )}`} + + + + + {item.age.toFixed(2)} + + {item.action} + + + + + + + + {item.location} + handleClickBond(item.node_address)} + > + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Bond Value Over Time for ${item.node_address.slice( + -4 + )}`} + trigger="click" + overlayClassName="my-custom-popover" + > + ᚱ + {parseInt( + (item.bond / 100000000).toFixed() + ).toLocaleString()} +
    +
    + {" "} + + } + title={"Bond Providers"} + trigger="hover" + > + + {item.bond_providers.providers.length} + - ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}{item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'}{item.rpc !== "null" ? '*' : 'Bad'}{item.bifrost !== "null" ? '*' : 'Bad' }
    + + handleClickRewards(item.node_address)} + > + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Rewards Over Time for ${item.node_address.slice( + -4 + )}`} + trigger="click" + overlayClassName="my-custom-popover" + > + ᚱ + {parseInt( + (item.current_award / 100000000).toFixed() + ).toLocaleString()} +
    + + + {item.apy} + + handleClickSlashes(item.node_address)} + > + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Slashes Over Time for ${item.node_address.slice( + -4 + )}`} + trigger="click" + overlayClassName="my-custom-popover" + > + {parseInt(item.slash_points).toLocaleString()} +
    + + + {item.score} + + + {item.version} + + {/* {item.rpc === 'true' ? '*' : 'BAD'} */} + + {item.forced_to_leave === 1 || item.requested_to_leave === 1 + ? "yes" + : "-"} + + + + {item.rpc !== "null" ? "*" : "Bad"} + + + + + {item.bifrost !== "null" ? "*" : "Bad"} + + + + {chains && ( + <> + + + + + + + + + + )} + + ))} + + + + + +
    +
    +
      +
    • + +
    • + {renderPageNumbers} +
    • + +
    • +
    +
    -
    -
      -
    • - {renderPageNumbers} -
    • -
    -
    -
    - ) -} + ); +}; let timer = null; const defaulColumns = { - nodes: true, - age: true, - action: true, - isp: true, - bond: true, - providers: true, - rewards: true, - apy: true, - slashes: true, - score: true, - version: true, - rpc: true, - bfr: true, - } + nodes: true, + age: true, + action: true, + isp: true, + bond: true, + providers: true, + rewards: true, + apy: true, + slashes: true, + score: true, + version: true, + rpc: true, + bfr: true, +}; export default class extends Component { constructor(props) { super(props); - this.state = { - data: [], - globalData: [], - sortBy: 'bond', - sortDirection: 'desc', - activeNodes: [], - standByNodes: [], - whitelistedNodes: [], - animateBlockCount: false, - myFavNodes: [], - searchTerm: '', - visibleColumns: defaulColumns, - nodesFilter: {}, - loading: true, - }; + this.state = { + chartData: [], + data: [], + globalData: [], + sortBy: "bond", + sortDirection: "desc", + activeNodes: [], + standByNodes: [], + whitelistedNodes: [], + animateBlockCount: false, + myFavNodes: [], + searchTerm: "", + visibleColumns: defaulColumns, + nodesFilter: {}, + loading: true, + }; + this.clickSortHeader = this.clickSortHeader.bind(this); + this.handleClickRewards = this.handleClickRewards.bind(this); + this.handleClickSlashes = this.handleClickSlashes.bind(this); + this.handleClickBond = this.handleClickBond.bind(this); } async componentWillMount() { + const myFavNodes = getCookie("myFavNodes"); - const myFavNodes = getCookie('myFavNodes') - - const tmp = myFavNodes.length>0 ? JSON.parse(myFavNodes) : [] + const tmp = myFavNodes.length > 0 ? JSON.parse(myFavNodes) : []; - this.setState({ myFavNodes: tmp }) + this.setState({ myFavNodes: tmp }); - this.refreshData() + this.refreshData(); } async refreshData() { - const data = await getData() + const data = await getData(); if (this.state.loading) { this.setState({ loading: false }); } - if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') { - console.log('DEV ONLY: Refresh Data Results: ', data) + if (!process.env.NODE_ENV || process.env.NODE_ENV === "development") { + console.log("DEV ONLY: Refresh Data Results: ", data); } - this.setState({data: data.data, globalData: data.globalData, maxChainHeights: data.maxChainHeights, animateBlockCount: false}, ()=>this.setData()) //Change animateBlockCount to true here for animation + this.setState( + { + data: data.data, + globalData: data.globalData, + maxChainHeights: data.maxChainHeights, + animateBlockCount: false, + }, + () => this.setData() + ); //Change animateBlockCount to true here for animation } componentDidMount() { - timer = setInterval(() => { - this.setState({animateBlockCount: false}, ()=>this.refreshData()) + this.setState({ animateBlockCount: false }, () => this.refreshData()); //this.refreshData() - }, 6000) + }, 6000); } componentWillUnmount() { @@ -598,73 +1393,68 @@ export default class extends Component { } addToFav(address) { - //Below works to add, but need to check if already exists, and if so remove - const myFavNodes = getCookie('myFavNodes')//JSON.parse( + const myFavNodes = getCookie("myFavNodes"); //JSON.parse( - if(myFavNodes.length===0) { + if (myFavNodes.length === 0) { //in here no current fav nodes - const singleAddress = JSON.stringify([address]) - setCookie('myFavNodes', singleAddress) - this.setState({myFavNodes: singleAddress}, ()=>this.setData()) - + const singleAddress = JSON.stringify([address]); + setCookie("myFavNodes", singleAddress); + this.setState({ myFavNodes: singleAddress }, () => this.setData()); } else { //If we already have some fav nodes - const newFaveNodes = JSON.parse(myFavNodes) + const newFaveNodes = JSON.parse(myFavNodes); //Need to check if already exists if (newFaveNodes.indexOf(address) > -1) { - //In the array! - - const newArrayWithRemove = newFaveNodes.filter(item => item!==address) + //In the array! - const newFaveNodesNew = JSON.stringify(newArrayWithRemove) - this.setState({myFavNodes: newArrayWithRemove}, ()=>this.setData()) - setCookie('myFavNodes', newFaveNodesNew) + const newArrayWithRemove = newFaveNodes.filter( + (item) => item !== address + ); + const newFaveNodesNew = JSON.stringify(newArrayWithRemove); + this.setState({ myFavNodes: newArrayWithRemove }, () => this.setData()); + setCookie("myFavNodes", newFaveNodesNew); } else { - //Not in the array - newFaveNodes[newFaveNodes.length] = address - - const newFaveNodesNew = JSON.stringify(newFaveNodes) + //Not in the array + newFaveNodes[newFaveNodes.length] = address; - this.setState({myFavNodes: newFaveNodes}, ()=>this.setData()) - setCookie('myFavNodes', newFaveNodesNew) + const newFaveNodesNew = JSON.stringify(newFaveNodes); + this.setState({ myFavNodes: newFaveNodes }, () => this.setData()); + setCookie("myFavNodes", newFaveNodesNew); } - } - } returnSearchedData(data) { - if (this.state.searchTerm === '') { - return data - } else { - const filteredNodes = data.filter(item => item.node_address.includes(this.state.searchTerm)) - return filteredNodes - } + if (this.state.searchTerm === "") { + return data; + } else { + const filteredNodes = data.filter((item) => + item.node_address.includes(this.state.searchTerm) + ); + return filteredNodes; + } } setData() { //Grab our state so we can mutate it - let myData = JSON.parse(JSON.stringify(this.state.data)) - - - + let myData = JSON.parse(JSON.stringify(this.state.data)); //Add faves to the data, then we can sort by then below - const newItems = myData.map(item => { - if (this.state.myFavNodes.includes(item.node_address)) { - item.fave = 1 - } else { - item.fave = 0 - } - return item - }); + const newItems = myData.map((item) => { + if (this.state.myFavNodes.includes(item.node_address)) { + item.fave = 1; + } else { + item.fave = 0; + } + return item; + }); -/* + /* Whitelisted Active Standby @@ -672,265 +1462,550 @@ Ready Disabled */ - //Filter for our three tables - let activeNodes = newItems.filter(item => item.status ==='Active') - let standbyNodes = newItems.filter(item => (item.status ==='Standby' || item.status ==='Ready') && item.version === this.state.globalData.maxVersion) - - //Create an array of all nodes that are active and standby - const active_standy_nodes = [ ...activeNodes.map(item => {return item.node_address}), ...standbyNodes.map(item => {return item.node_address})] - //White listed are all other nodes which are not active or on standby - //White listed is really just "Other" - let whitelisted = newItems.filter(item => !active_standy_nodes.includes(item.node_address)) + //Filter for our three tables + let activeNodes = newItems.filter((item) => item.status === "Active"); + let standbyNodes = newItems.filter( + (item) => + (item.status === "Standby" || item.status === "Ready") && + item.version === this.state.globalData.maxVersion + ); - //let whitelisted = newItems.filter(item => !(item.status ==='Active' || item.status ==='Standby' || item.status ==='Ready') /*&& item.version !== this.state.globalData.maxVersion*/) + //Create an array of all nodes that are active and standby + const active_standy_nodes = [ + ...activeNodes.map((item) => { + return item.node_address; + }), + ...standbyNodes.map((item) => { + return item.node_address; + }), + ]; + //White listed are all other nodes which are not active or on standby + //White listed is really just "Other" + let whitelisted = newItems.filter( + (item) => !active_standy_nodes.includes(item.node_address) + ); - activeNodes = this.findChurnOuts(activeNodes) //Add in the actions for churning - standbyNodes = this.findChurnIns(standbyNodes) //Add in the actions for nodes churning in + //let whitelisted = newItems.filter(item => !(item.status ==='Active' || item.status ==='Standby' || item.status ==='Ready') /*&& item.version !== this.state.globalData.maxVersion*/) - //Filter here if any searchTerm from the search bar - //Need to do after adding the actions - activeNodes = this.returnSearchedData(activeNodes) - standbyNodes = this.returnSearchedData(standbyNodes) - whitelisted = this.returnSearchedData(whitelisted) + activeNodes = this.findChurnOuts(activeNodes); //Add in the actions for churning + standbyNodes = this.findChurnIns(standbyNodes); //Add in the actions for nodes churning in - //Sort and add our favs to the top - let activeNodesSorted = this.sortData(activeNodes) - const favActiveNodesSorted = activeNodesSorted.filter(item => item.fave === 1) //Get our favourites - activeNodesSorted = activeNodesSorted.filter(item => item.fave === 0)//Get our non favourites + //Filter here if any searchTerm from the search bar + //Need to do after adding the actions + activeNodes = this.returnSearchedData(activeNodes); + standbyNodes = this.returnSearchedData(standbyNodes); + whitelisted = this.returnSearchedData(whitelisted); - activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted] //Join faves at top with non favourites + //Sort and add our favs to the top + let activeNodesSorted = this.sortData(activeNodes); + const favActiveNodesSorted = activeNodesSorted.filter( + (item) => item.fave === 1 + ); //Get our favourites + activeNodesSorted = activeNodesSorted.filter((item) => item.fave === 0); //Get our non favourites + activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted]; //Join faves at top with non favourites - const standBySorted = this.sortData(standbyNodes) - const whitelistedSorted = this.sortData(whitelisted) + const standBySorted = this.sortData(standbyNodes); + const whitelistedSorted = this.sortData(whitelisted); - this.setState({ - activeNodes: activeNodesSorted, - standByNodes: standBySorted, - whitelistedNodes: whitelistedSorted //This is really just other - }) + this.setState({ + activeNodes: activeNodesSorted, + standByNodes: standBySorted, + whitelistedNodes: whitelistedSorted, //This is really just other + }); } - - onColumnUpdate (config) { - this.setState({ visibleColumns: config }) + onColumnUpdate(config) { + this.setState({ visibleColumns: config }); } - onNodesFilter (key) { - this.setState(prevState => ({ + onNodesFilter(key) { + this.setState((prevState) => ({ nodesFilter: { ...prevState.nodesFilter, - [key]: !prevState.nodesFilter[key] - } + [key]: !prevState.nodesFilter[key], + }, })); } -/* + /* Split the data into over 300ks and under 300ks With the over 300ks, take the top 3 if they exist and apply churn in action If 4 nodes churn in instead of 3 each time, add another row */ findChurnIns(standbyNodes) { - if (standbyNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + if (standbyNodes.length === 0) return []; //Stops filter from breaking when search returns 0 - const over300 = standbyNodes.filter(item => item.bond >= 30000000000000) - const over300Sorted = this.sortData(over300, 'bond', 'desc') + const over300 = standbyNodes.filter((item) => item.bond >= 30000000000000); + const over300Sorted = this.sortData(over300, "bond", "desc"); - if (over300Sorted.length > 0){ - over300Sorted[Math.min(0, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(1, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(2, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(3, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(4, over300Sorted.length-1)].action = 'Churn In' + if (over300Sorted.length > 0) { + over300Sorted[Math.min(0, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(1, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(2, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(3, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(4, over300Sorted.length - 1)].action = "Churn In"; } - const under300 = standbyNodes.filter(item => item.bond < 30000000000000) + const under300 = standbyNodes.filter((item) => item.bond < 30000000000000); - return [...over300Sorted, ...under300] + return [...over300Sorted, ...under300]; } -/* + /* Lowest Bond Oldest Node Worst Performer (Can't churn out if just churned in, one cycle grace period) */ findChurnOuts(activeNodes) { - if (activeNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + if (activeNodes.length === 0) return []; //Stops filter from breaking when search returns 0 - let activeNodesSorted = this.sortData(activeNodes, 'age', 'desc') - activeNodesSorted[0].action = 'Oldest' + let activeNodesSorted = this.sortData(activeNodes, "age", "desc"); + activeNodesSorted[0].action = "Oldest"; - activeNodesSorted = this.sortData(activeNodes, 'bond', 'asc') - activeNodesSorted[0].action = 'Smallest Bond' + activeNodesSorted = this.sortData(activeNodes, "bond", "asc"); + activeNodesSorted[0].action = "Smallest Bond"; - activeNodesSorted = this.sortData(activeNodes, 'score', 'asc', true) + activeNodesSorted = this.sortData(activeNodes, "score", "asc", true); //we set the 'Worst Performing' tag in the sortData function - this.calcBadValidatorRedline(activeNodes) + this.calcBadValidatorRedline(activeNodes); - return activeNodesSorted + return activeNodesSorted; } - calcBadValidatorRedline(activeNodes){ + calcBadValidatorRedline(activeNodes) { //Only get nodes with slashes greater than 100 - const greater100Slashes = activeNodes.filter(item => item.slash_points > 100) + const greater100Slashes = activeNodes.filter( + (item) => item.slash_points > 100 + ); //Add all the scores together for thes nodes const sum = greater100Slashes.reduce((accumulator, object) => { return accumulator + parseFloat(object.score); }, 0); //Find the average - const averageScore = sum/(greater100Slashes.length+1) + const averageScore = sum / (greater100Slashes.length + 1); - const validatorLine = averageScore/this.state.globalData.BadValidatorRedline + const validatorLine = + averageScore / this.state.globalData.BadValidatorRedline; - activeNodes.map(item => { - if(item.score < validatorLine) { - item.action = 'Bad Redline' + activeNodes.map((item) => { + if (item.score < validatorLine) { + item.action = "Bad Redline"; } - return 0 - }) - + return 0; + }); } -/* + /* Sort by either string or number We use string sort function if value is one of the arrays else do second sort number */ sortData(data, value = null, direction = null, worst_perform = false) { - const toSortBy = value === null ? this.state.sortBy : value - let newData = [] - - if (['node', 'isp', 'location', 'version', 'action', 'node_address'].includes(toSortBy)){ //This sort function for strings + const toSortBy = value === null ? this.state.sortBy : value; + let newData = []; + + if ( + ["node", "isp", "location", "version", "action", "node_address"].includes( + toSortBy + ) + ) { + //This sort function for strings newData = data.sort((a, b) => a[toSortBy].localeCompare(b[toSortBy])); - - } else if (toSortBy === 'bond_providers') {//This is for bond provider sort as we need to go another layer deep in the object - newData = data.sort((a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length); - - } else if (worst_perform === true) { //This is for when we are sorting for action of worst performance as we want to exclude any with age under 3 days - const ageCutOffDays = 3 - const a = data.filter(item => parseFloat(item.age) > ageCutOffDays) - const b = data.filter(item => parseFloat(item.age) <= ageCutOffDays) - const aSorted = a.sort((a, b) => (b[toSortBy] - a[toSortBy]) ); - - aSorted[aSorted.length-1].action = 'Worst Performing' - newData = [...aSorted, ...b] - - } else { //This sort function for numbers - //When sorting, if values are the same, sort by node_address + } else if (toSortBy === "bond_providers") { + //This is for bond provider sort as we need to go another layer deep in the object newData = data.sort( - function(a, b) { - if (a[toSortBy] === b[toSortBy]) { - return a['node_address'].localeCompare(b['node_address']); - } - return a[toSortBy] > b[toSortBy] ? 1 : -1; - }); + (a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length + ); + } else if (worst_perform === true) { + //This is for when we are sorting for action of worst performance as we want to exclude any with age under 3 days + const ageCutOffDays = 3; + const a = data.filter((item) => parseFloat(item.age) > ageCutOffDays); + const b = data.filter((item) => parseFloat(item.age) <= ageCutOffDays); + const aSorted = a.sort((a, b) => b[toSortBy] - a[toSortBy]); + + aSorted[aSorted.length - 1].action = "Worst Performing"; + newData = [...aSorted, ...b]; + } else { + //This sort function for numbers + //When sorting, if values are the same, sort by node_address + newData = data.sort(function (a, b) { + if (a[toSortBy] === b[toSortBy]) { + return a["node_address"].localeCompare(b["node_address"]); + } + return a[toSortBy] > b[toSortBy] ? 1 : -1; + }); } //If we pass it a direction, we set it here, if not we take it from the state - const toDirection = direction === null ? this.state.sortDirection : direction - if (toDirection === 'desc') { - newData.reverse() + const toDirection = + direction === null ? this.state.sortDirection : direction; + if (toDirection === "desc") { + newData.reverse(); } - return newData + return newData; } - clickSortHeader(item){ - const direction = this.state.sortBy !== item ? 'desc' : this.state.sortDirection === 'desc' ? 'asc' : 'desc'; - this.setState({sortBy: item, sortDirection: direction}, ()=> this.setData()) + clickSortHeader(item) { + const direction = + this.state.sortBy !== item + ? "desc" + : this.state.sortDirection === "desc" + ? "asc" + : "desc"; + this.setState({ sortBy: item, sortDirection: direction }, () => + this.setData() + ); } sortColour(item) { - return '#ffffff' + return "#ffffff"; } - whichHeart(address){ - return this.state.myFavNodes.includes(address) ? heartFull : heartBlank + whichHeart(address) { + return this.state.myFavNodes.includes(address) ? heartFull : heartBlank; } + handleClickSlashes = async (node_address) => { + const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y), + })); + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + + handleClickRewards = async (node_address) => { + const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y), + })); + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + + handleClickBond = async (node_address) => { + const url = `https://api.liquify.com/thor/api/grabBond=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Math.round(Number(y) / 100000000), + })); + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; searchBar() { return ( -
    - this.setState({ searchTerm: event.target.value.trim().toLowerCase()},()=>this.setData())} - prefix={} - /> +
    + + this.setState( + { searchTerm: event.target.value.trim().toLowerCase() }, + () => this.setData() + ) + } + prefix={} + />
    - ) + ); } render() { - - const { loading, nodesFilter, visibleColumns, whitelistedNodes } = this.state; + const { loading, nodesFilter, visibleColumns, whitelistedNodes } = + this.state; + + const chartDataConfig = this.state.chartData + ? { + datasets: [ + { + label: "Value", + data: this.state.chartData, + fill: false, + backgroundColor: "rgb(28, 57, 182)", + borderColor: "rgba(28, 57, 187, 0.2)", + }, + ], + } + : {}; + + const slashesOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Height", + }, + ticks: { + callback: function (value, index, values) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Slashes Value", + }, + }, + ], + }, + } + : {}; + + const rewardsOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Height", + }, + ticks: { + callback: function (value, index, values) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Reward Value", + }, + }, + ], + }, + } + : {}; + + const bondOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: Math.min(...this.state.chartData.map((data) => data.x)), + stepSize: 20000, + callback: function (value, index, values) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Bond Value", + }, + ticks: { + min: Math.min(...this.state.chartData.map((data) => data.y)), + stepSize: 20000, + callback: function (value) { + return value.toString(); + }, + }, + }, + ], + }, + } + : {}; return ( -
    -
    - # - Thornode Monitor -
    -
    -
    this.onNodesFilter('active')}>
    -
    this.onNodesFilter('standby')}>
    -
    this.onNodesFilter('orthers')}>
    -
    - -
    - - +
    +
    + # + Thornode Monitor +
    +
    +
    this.onNodesFilter("active")} + > + +
    +
    this.onNodesFilter("standby")} + > + +
    +
    this.onNodesFilter("orthers")} + > + +
    +
    +
    + {loading && ( -
    +
    + +
    )} - {!(loading) && ( -
    - + {!loading && ( +
    }> Dashboard - Other Nodes + + Other Nodes + -
    -
    - +
    +
    +
    - - <> -
    -
    - -
    - {this.searchBar()} - + <> +
    +
    +
    + {this.searchBar()} - {whitelistedNodes.length > 0 && ( - - )} - {whitelistedNodes.length === 0 && ( -
    -
    No Other Data Available!
    + +
    + + {whitelistedNodes.length > 0 && ( + + )} + {whitelistedNodes.length === 0 && ( +
    +
    + No Other Data Available! +
    - )} - + )} +
    )} -
    - # - # -
    - Built by: - # -
    -
    - + + ); } -} \ No newline at end of file +} diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 229f333..2f491b8 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -1,75 +1,111 @@ -import React, { Component, useState } from 'react'; -import Modals from '@iso/components/Feedback/Modal'; -import Popover from '@iso/components/uielements/popover'; -import { getData, setCookie, getCookie } from 'CommonFunctions' -import { ModalContent } from '../Feedback/Modal/Modal.styles'; -import { Layout, Button, Input, Breadcrumb, Select } from 'antd'; +import React, { Component, useState } from "react"; +import Modals from "@iso/components/Feedback/Modal"; +import Popover from "@iso/components/uielements/popover"; +import { getData, setCookie, getCookie } from "CommonFunctions"; +import { ModalContent } from "../Feedback/Modal/Modal.styles"; +import { Layout, Button, Input, Breadcrumb, Select } from "antd"; +import { Line } from "react-chartjs-2"; +import CustomLineChart from "./CustomLineChart"; import "./styles.css"; -import { SearchOutlined, LeftOutlined , RightOutlined } from '@ant-design/icons'; -import heartBlank from '@iso/assets/images/heart-blank.png'; -import heartFull from '@iso/assets/images/heart-full.png'; -import imageDO from '@iso/assets/images/do.png'; -import imageAWS from '@iso/assets/images/aws.png'; -import imageGCP from '@iso/assets/images/gcp.png'; -import imageAZURE from '@iso/assets/images/azure.png'; -import imageHETZNER from '@iso/assets/images/hetzner.png'; -import imageVULTR from '@iso/assets/images/vultr.png'; -import imageLeaseweb from '@iso/assets/images/leaseweb.png'; -import imageDatacamp from '@iso/assets/images/datacamp.png'; -import imageComcast from '@iso/assets/images/comcast.png'; -import imageChoopa from '@iso/assets/images/choopa.png'; -import imageChartercoms from '@iso/assets/images/chartercoms.png'; -import imageATandT from '@iso/assets/images/atandt.png'; -import imageZenlayer from '@iso/assets/images/zenlayer.png'; - -import binance from '@iso/assets/images/binance.png'; -import eth from '@iso/assets/images/eth.png'; -import bitcoin from '@iso/assets/images/bitcoin.png'; -import litecoin from '@iso/assets/images/litecoin.png'; -import bitcoincash from '@iso/assets/images/bitcoincash.png'; -import dogecoin from '@iso/assets/images/dogecoin.png'; -import gaia from '@iso/assets/images/atom.png'; -import thornode from '@iso/assets/images/thornode.svg'; -import avax from '@iso/assets/images/avax.png'; -import blockIcon from '@iso/assets/images/overview/block_icon.svg'; -import highTradingIcon from '@iso/assets/images/overview/24high_trading.svg'; -import lowTradingIcon from '@iso/assets/images/overview/24low_trading.svg'; -import bondIcon from '@iso/assets/images/overview/Bond_icon.svg'; -import churnsIcon from '@iso/assets/images/overview/churns_icon.svg'; -import marcketCapIcon from '@iso/assets/images/overview/marcket_Cap.svg'; -import mcapRankIcon from '@iso/assets/images/overview/mcap_rank.svg'; -import runeUsdtIcon from '@iso/assets/images/overview/rune_usdt.svg'; -import timeIcon from '@iso/assets/images/overview/time_icon.svg'; -import totalSupplyIcon from '@iso/assets/images/overview/total_supply.svg'; -import loadingIcon from '@iso/assets/images/overview/loading.png'; -import githubIcon from '@iso/assets/images/overview/github_link_icon.svg'; -import twitterIcon from '@iso/assets/images/overview/twitter_link_icon.svg'; -import liquifyLogo from '@iso/assets/images/overview/liquify_logo.svg'; -import threeDotsIcon from '@iso/assets/images/overview/dots_three_circle.svg'; -import powerIcon from '@iso/assets/images/overview/power.svg'; -import activeIcon from '@iso/assets/images/overview/active_icon.svg'; -import VisibleColumn from '@iso/components/VisibleColumn/VisibleColumn'; -import arrowDownIcon from '@iso/assets/images/overview/arrow-down.svg'; - -const leaveIcon = +import { SearchOutlined, LeftOutlined, RightOutlined } from "@ant-design/icons"; +import heartBlank from "@iso/assets/images/heart-blank.png"; +import heartFull from "@iso/assets/images/heart-full.png"; +import imageDO from "@iso/assets/images/do.png"; +import imageAWS from "@iso/assets/images/aws.png"; +import imageGCP from "@iso/assets/images/gcp.png"; +import imageAZURE from "@iso/assets/images/azure.png"; +import imageHETZNER from "@iso/assets/images/hetzner.png"; +import imageVULTR from "@iso/assets/images/vultr.png"; +import imageLeaseweb from "@iso/assets/images/leaseweb.png"; +import imageDatacamp from "@iso/assets/images/datacamp.png"; +import imageComcast from "@iso/assets/images/comcast.png"; +import imageChoopa from "@iso/assets/images/choopa.png"; +import imageChartercoms from "@iso/assets/images/chartercoms.png"; +import imageATandT from "@iso/assets/images/atandt.png"; +import imageZenlayer from "@iso/assets/images/zenlayer.png"; + +import binance from "@iso/assets/images/binance.png"; +import eth from "@iso/assets/images/eth.png"; +import bitcoin from "@iso/assets/images/bitcoin.png"; +import litecoin from "@iso/assets/images/litecoin.png"; +import bitcoincash from "@iso/assets/images/bitcoincash.png"; +import dogecoin from "@iso/assets/images/dogecoin.png"; +import gaia from "@iso/assets/images/atom.png"; +import thornode from "@iso/assets/images/thornode.svg"; +import avax from "@iso/assets/images/avax.png"; +import blockIcon from "@iso/assets/images/overview/block_icon.svg"; +import highTradingIcon from "@iso/assets/images/overview/24high_trading.svg"; +import lowTradingIcon from "@iso/assets/images/overview/24low_trading.svg"; +import bondIcon from "@iso/assets/images/overview/Bond_icon.svg"; +import churnsIcon from "@iso/assets/images/overview/churns_icon.svg"; +import marcketCapIcon from "@iso/assets/images/overview/marcket_Cap.svg"; +import mcapRankIcon from "@iso/assets/images/overview/mcap_rank.svg"; +import runeUsdtIcon from "@iso/assets/images/overview/rune_usdt.svg"; +import timeIcon from "@iso/assets/images/overview/time_icon.svg"; +import totalSupplyIcon from "@iso/assets/images/overview/total_supply.svg"; +import loadingIcon from "@iso/assets/images/overview/loading.png"; +import githubIcon from "@iso/assets/images/overview/github_link_icon.svg"; +import twitterIcon from "@iso/assets/images/overview/twitter_link_icon.svg"; +import liquifyLogo from "@iso/assets/images/overview/liquify_logo.svg"; +import threeDotsIcon from "@iso/assets/images/overview/dots_three_circle.svg"; +import powerIcon from "@iso/assets/images/overview/power.svg"; +import activeIcon from "@iso/assets/images/overview/active_icon.svg"; +import VisibleColumn from "@iso/components/VisibleColumn/VisibleColumn"; +import arrowDownIcon from "@iso/assets/images/overview/arrow-down.svg"; + +const leaveIcon = ( + +); const { Header, Footer, Content } = Layout; -const headerStyle = {cursor: 'pointer', padding: '12px 15px', fontSize: 15, color: '#ffffff', backgroundColor: 'rgba(24, 34, 51, 0.4)', height: 55, fontWeight: 600} -const tdStyle = {minWidth: 60, textAlign: 'right', fontSize: 14, padding: '10px 15px'} -const trStyle = {height: 45} -const iconStyle = {minWidth: 25, padding: 5, paddingLeft: 10, paddingRight: 10, padding: '10px 15px'} - +const headerStyle = { + cursor: "pointer", + padding: "12px 15px", + fontSize: 15, + color: "#ffffff", + backgroundColor: "rgba(24, 34, 51, 0.4)", + height: 55, + fontWeight: 600, +}; +const tdStyle = { + minWidth: 60, + textAlign: "right", + fontSize: 14, + padding: "10px 15px", +}; +const trStyle = { height: 45 }; +const iconStyle = { + minWidth: 25, + padding: 5, + paddingLeft: 10, + paddingRight: 10, + padding: "10px 15px", +}; async function copyToClipWithPopup(msg, ip) { - copyToClipboard(ip) - popUpModal(msg, ip) + copyToClipboard(ip); + popUpModal(msg, ip); } -const copyToClipboard = str => { +const copyToClipboard = (str) => { if (navigator && navigator.clipboard && navigator.clipboard.writeText) return navigator.clipboard.writeText(str); - return Promise.reject('The Clipboard API is not available.'); + return Promise.reject("The Clipboard API is not available."); }; function popUpModal(msg, ip) { @@ -83,254 +119,429 @@ function popUpModal(msg, ip) { ), onOk() {}, - okText: 'OK', - cancelText: 'Cancel', - className: 'feedback-modal' + okText: "OK", + cancelText: "Cancel", + className: "feedback-modal", }); } const SortIcon = ({ sortBy, column, sortDirection }) => { if (sortBy == column) { - return + return ( + + ); } - return null -} + return null; +}; -const Icons = ({address, ip_address, addToFav, whichHeart}) => { - const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}` - const secondURL = `https://viewblock.io/thorchain/address/${address}` +const Icons = ({ address, ip_address, addToFav, whichHeart }) => { + const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}`; + const secondURL = `https://viewblock.io/thorchain/address/${address}`; return ( - - - - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - copyToClipWithPopup('IP Copied to clipboard:', ip_address)}> - - - - + + + copyToClipWithPopup("IP Copied to clipboard:", ip_address) + } + > + + + + - #addToFav(address)} src={whichHeart(address)} style={{ cursor:'pointer', marginLeft: 5, marginTop: 2, width: 15, height: 15}}/> + # addToFav(address)} + src={whichHeart(address)} + style={{ + cursor: "pointer", + marginLeft: 5, + marginTop: 2, + width: 15, + height: 15, + }} + /> -) -} - -const GlobalData = ({ globalData, animateBlockCount, state}) => { + ); +}; - let timeToDisplay = ''; - let msgTitle = '' - if (globalData?.churnTry && globalData?.retiring === 'false') { - msgTitle = '(CHURN) RETRY IN' - timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m` - } else if (globalData?.retiring === 'true') { - msgTitle = '(CHURN) CURRENTLY CHURNING' - timeToDisplay = 'Churning' +const GlobalData = ({ globalData, animateBlockCount, state }) => { + let timeToDisplay = ""; + let msgTitle = ""; + if (globalData?.churnTry && globalData?.retiring === "false") { + msgTitle = "(CHURN) RETRY IN"; + timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m`; + } else if (globalData?.retiring === "true") { + msgTitle = "(CHURN) CURRENTLY CHURNING"; + timeToDisplay = "Churning"; } else { - msgTitle = '(CHURN) TIME UNTIL' - timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m` + msgTitle = "(CHURN) TIME UNTIL"; + timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m`; } return ( <> -
    - # -
    -
    CURRENT BLOCK
    -
    {parseInt(globalData.maxHeight).toLocaleString()}
    +
    + # +
    +
    CURRENT BLOCK
    +
    + {parseInt(globalData.maxHeight).toLocaleString()} +
    -
    - # -
    -
    {msgTitle}
    -
    {timeToDisplay}
    +
    + # +
    +
    {msgTitle}
    +
    {timeToDisplay}
    -
    - # -
    -
    TOTAL BONDED VALUE
    -
    ᚱ{state.activeNodes.length>0 ? parseInt((state.activeNodes.map(item => item.bond).reduce((prev, next) => prev + next))/100000000).toLocaleString() : '0'}
    +
    + # +
    +
    TOTAL BONDED VALUE
    +
    + ᚱ + {state.activeNodes.length > 0 + ? parseInt( + state.activeNodes + .map((item) => item.bond) + .reduce((prev, next) => prev + next) / 100000000 + ).toLocaleString() + : "0"} +
    -
    - # -
    -
    MARKET CAP
    -
    ${globalData?.coingecko?.market_cap?.toLocaleString()}
    +
    + # +
    +
    MARKET CAP
    +
    + ${globalData?.coingecko?.market_cap?.toLocaleString()} +
    -
    - # -
    -
    24 HR VOLUME
    -
    ${globalData?.coingecko?.total_volume?.toLocaleString()}
    +
    + # +
    +
    24 HR VOLUME
    +
    + ${globalData?.coingecko?.total_volume?.toLocaleString()} +
    -
    - # -
    -
    MAX EFFECTIVE BOND
    -
    ᚱ{parseInt(globalData.maxEffectiveStake/100000000).toLocaleString()}
    +
    + # +
    +
    MAX EFFECTIVE BOND
    +
    + ᚱ + {parseInt( + globalData.maxEffectiveStake / 100000000 + ).toLocaleString()} +
    - ) -} + ); +}; const CoinGeckoData = ({ globalData }) => { return ( <> -
    - # -
    -
    PRICE
    -
    ${globalData?.coingecko?.current_price?.toLocaleString()}
    +
    + # +
    +
    PRICE
    +
    + ${globalData?.coingecko?.current_price?.toLocaleString()} +
    -
    - # -
    -
    24 HR HIGH
    -
    ${globalData?.coingecko?.high_24h}
    +
    + # +
    +
    24 HR HIGH
    +
    + ${globalData?.coingecko?.high_24h} +
    -
    - # -
    -
    24 HR LOW
    -
    ${globalData?.coingecko?.low_24h}
    +
    + # +
    +
    24 HR LOW
    +
    + ${globalData?.coingecko?.low_24h} +
    -
    - # -
    -
    MARKET CAP RANK
    -
    {globalData?.coingecko?.market_cap_rank}
    +
    + # +
    +
    MARKET CAP RANK
    +
    + {globalData?.coingecko?.market_cap_rank} +
    -
    - # -
    -
    TOTAL SUPPLY
    -
    ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()}
    +
    + # +
    +
    TOTAL SUPPLY
    +
    + ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()} +
    - ) -} - - -const ReturnIspImage = ({isp}) => { + ); +}; - const style = {width: 25, height: 25} +const ReturnIspImage = ({ isp }) => { + const style = { width: 25, height: 25 }; - if (isp ==='Amazon.com, Inc.' || isp === 'Amazon Technologies Inc.' || isp === 'Amazon.com'){ - return # + if ( + isp === "Amazon.com, Inc." || + isp === "Amazon Technologies Inc." || + isp === "Amazon.com" + ) { + return #; } - if (isp ==='DigitalOcean, LLC' || isp==='DigitalOcean'){ - return # + if (isp === "DigitalOcean, LLC" || isp === "DigitalOcean") { + return #; } - if (isp ==='Google LLC'){ - return # + if (isp === "Google LLC") { + return #; } - if (isp ==='Microsoft Corporation'){ - return # + if (isp === "Microsoft Corporation") { + return #; } - if (isp ==='Hetzner Online GmbH'){ - return # + if (isp === "Hetzner Online GmbH") { + return #; } - if (isp ==='The Constant Company' || isp === 'The Constant Company, LLC'){ - return # + if (isp === "The Constant Company" || isp === "The Constant Company, LLC") { + return #; } - if (isp ==='Leaseweb UK Limited' || isp === 'Leaseweb USA, Inc.'){ - return # + if (isp === "Leaseweb UK Limited" || isp === "Leaseweb USA, Inc.") { + return #; } - if (isp ==='Datacamp Limited'){ - return # + if (isp === "Datacamp Limited") { + return #; } - if (isp ==='Comcast Cable Communications, LLC'){ - return # + if (isp === "Comcast Cable Communications, LLC") { + return #; } - if (isp ==='Choopa'){ - return # + if (isp === "Choopa") { + return #; } - if (isp ==='Charter Communications Inc'){ - return # + if (isp === "Charter Communications Inc") { + return #; } - if (isp ==='AT&T Services, Inc.'){ - return # + if (isp === "AT&T Services, Inc.") { + return #; } - - if (isp ==='Zenlayer Inc'){ - return # + + if (isp === "Zenlayer Inc") { + return #; } - return '-' -} + return "-"; +}; -const ChainTD = ({chain, obchains, maxChainHeights}) => { - const delta = obchains[chain]-maxChainHeights[chain] +const ChainTD = ({ chain, obchains, maxChainHeights }) => { + const delta = obchains[chain] - maxChainHeights[chain]; return ( - {delta===0 ? 'OK' : delta.toString()} - ) -} + + {delta === 0 ? "OK" : delta.toString()} + + ); +}; -const BondProviderPopOver = ({data}) => { - const totalBond = data.map(item=>parseInt(item.bond)).reduce((a, b) => a + b, 0) +const BondProviderPopOver = ({ data }) => { + const totalBond = data + .map((item) => parseInt(item.bond)) + .reduce((a, b) => a + b, 0); - const d = data.map((item,index) => { + const d = data.map((item, index) => { return ( -
    - {item.bond_address.substring(item.bond_address.length-4, item.bond_address.length)} - {((item.bond/totalBond)*100).toFixed(2)}% - ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} -
    - ) - }) - return d -} +
    + + {item.bond_address.substring( + item.bond_address.length - 4, + item.bond_address.length + )} + + {((item.bond / totalBond) * 100).toFixed(2)}% + + ᚱ{parseInt((item.bond / 100000000).toFixed()).toLocaleString()} + +
    + ); + }); + return d; +}; -const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chains, addToFav, whichHeart, visibleColumns = {...defaulColumns}, sortBy = '', sortDirection = ''}) => { +const NodeTable = ({ + nodeData, + clickSortHeader, + handleClickBond, + handleClickRewards, + handleClickSlashes, + sortColour, + maxChainHeights, + chains, + addToFav, + whichHeart, + chartDataConfig, + bondOptions, + rewardsOptions, + slashesOptions, + visibleColumns = { ...defaulColumns }, + sortBy = "", + sortDirection = "", +}) => { const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(100); @@ -346,7 +557,9 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai }; const handleNext = () => { - setCurrentPage((prevPage) => (prevPage === totalPages ? prevPage : prevPage + 1)); + setCurrentPage((prevPage) => + prevPage === totalPages ? prevPage : prevPage + 1 + ); }; const handlePrev = () => { @@ -371,215 +584,795 @@ const NodeTable = ({nodeData, clickSortHeader, sortColour, maxChainHeights, chai const currentItems = nodeData.slice(indexOfFirstItem, indexOfLastItem); const getHeaderClassName = (key) => { - return visibleColumns && visibleColumns[key] ? 'tableHeader' : 'tableHeader hidden' + return visibleColumns && visibleColumns[key] + ? "tableHeader" + : "tableHeader hidden"; }; const getCellClassName = (key) => { - return visibleColumns && visibleColumns[key] ? '' : 'hidden' + return visibleColumns && visibleColumns[key] ? "" : "hidden"; }; const updatePagingItem = (value) => { - setItemsPerPage(value) + setItemsPerPage(value); }; - return (<> -
    - Nodes per page: - - +
    +
    +
    + + + + + + + + + + + + + + + + - - - - + + + {chains && ( + <> + + + + + + + + + + )} + + + + {currentItems.map((item, index) => ( + + + + + + + + + - - - - - - {/* */} - - - - - {chains && - <> - - - - - - - - - - } - - ))} - - -
    + clickSortHeader("node_address")}> + Validator Nodes + + + + clickSortHeader("age")}> + Age + + + + clickSortHeader("action")}> + Action + + + + clickSortHeader("isp")}> + ISP + + + + clickSortHeader("location")}> + Location + + + + clickSortHeader("bond")}> + Bond + + + + clickSortHeader("bond_providers")}> + Providers + + + + clickSortHeader("current_award")}> + Rewards + + + + clickSortHeader("apy")}> + APY + + + + clickSortHeader("slash_points")}> + Slashes + + + + clickSortHeader("score")}> + Score + + + - copyToClipWithPopup('Node address copied to clipboard:', item.node_address)}> - {`...${item.node_address.substring(item.node_address.length - 4)}`} - - - - - - {item.age.toFixed(2)}{item.action} - clickSortHeader("version")}> + Version + + + + - - - - {item.location}ᚱ{parseInt((item.bond/100000000).toFixed()).toLocaleString()} } - title={'Bond Providers'} - trigger="hover" - >{item.bond_providers.providers.length} + clickSortHeader("leave")}> + {leaveIcon} + + + + + RPC + + BFR + + # + + # + + # + + # + + # + + # + + # + + # +
    + {index + 1} + + + + copyToClipWithPopup( + "Node address copied to clipboard:", + item.node_address + ) + } + > + {`...${item.node_address.substring( + item.node_address.length - 4 + )}`} + + + + + {item.age.toFixed(2)} + + {item.action} + + + + + + + + {item.location} + handleClickBond(item.node_address)} + > + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Bond Value Over Time for ${item.node_address.slice( + -4 + )}`} + trigger="click" + overlayClassName="my-custom-popover" + > + ᚱ + {parseInt( + (item.bond / 100000000).toFixed() + ).toLocaleString()} +
    +
    + {" "} + + } + title={"Bond Providers"} + trigger="hover" + > + + {item.bond_providers.providers.length} + - ᚱ{parseInt((item.current_award/100000000).toFixed()).toLocaleString()}{item.apy}{parseInt(item.slash_points).toLocaleString()}{item.score}{item.version}{item.rpc === 'true' ? '*' : 'BAD'}{item.forced_to_leave === 1 || item.requested_to_leave === 1 ? 'yes' : '-'}{item.rpc !== "null" ? '*' : 'Bad'}{item.bifrost !== "null" ? '*' : 'Bad' }
    + + handleClickRewards(item.node_address)} + > + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Rewards Over Time for ${item.node_address.slice( + -4 + )}`} + trigger="click" + overlayClassName="my-custom-popover" + > + ᚱ + {parseInt( + (item.current_award / 100000000).toFixed() + ).toLocaleString()} +
    + + + {item.apy} + + handleClickSlashes(item.node_address)} + > + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Slashes Over Time for ${item.node_address.slice( + -4 + )}`} + trigger="click" + overlayClassName="my-custom-popover" + > + {parseInt(item.slash_points).toLocaleString()} +
    + + + {item.score} + + + {item.version} + + {/* {item.rpc === 'true' ? '*' : 'BAD'} */} + + {item.forced_to_leave === 1 || item.requested_to_leave === 1 + ? "yes" + : "-"} + + + + {item.rpc !== "null" ? "*" : "Bad"} + + + + + {item.bifrost !== "null" ? "*" : "Bad"} + + + + {chains && ( + <> + + + + + + + + + + )} + + ))} + + + + + +
    +
    +
      +
    • + +
    • + {renderPageNumbers} +
    • + +
    • +
    +
    -
    -
      -
    • - {renderPageNumbers} -
    • -
    -
    -
    - ) -} + ); +}; let timer = null; const defaulColumns = { - nodes: true, - age: true, - action: true, - isp: true, - bond: true, - providers: true, - rewards: true, - apy: true, - slashes: true, - score: true, - version: true, - rpc: true, - bfr: true, - } + nodes: true, + age: true, + action: true, + isp: true, + bond: true, + providers: true, + rewards: true, + apy: true, + slashes: true, + score: true, + version: true, + rpc: true, + bfr: true, +}; export default class extends Component { constructor(props) { super(props); - this.state = { - data: [], - globalData: [], - sortBy: 'bond', - sortDirection: 'desc', - activeNodes: [], - standByNodes: [], - whitelistedNodes: [], - animateBlockCount: false, - myFavNodes: [], - searchTerm: '', - visibleColumns: defaulColumns, - nodesFilter: {}, - loading: true, - }; + this.state = { + chartData: [], + data: [], + globalData: [], + sortBy: "bond", + sortDirection: "desc", + activeNodes: [], + standByNodes: [], + whitelistedNodes: [], + animateBlockCount: false, + myFavNodes: [], + searchTerm: "", + visibleColumns: defaulColumns, + nodesFilter: {}, + loading: true, + }; + this.clickSortHeader = this.clickSortHeader.bind(this); + this.handleClickRewards = this.handleClickRewards.bind(this); + this.handleClickSlashes = this.handleClickSlashes.bind(this); + this.handleClickBond = this.handleClickBond.bind(this); } async componentWillMount() { + const myFavNodes = getCookie("myFavNodes"); - const myFavNodes = getCookie('myFavNodes') - - const tmp = myFavNodes.length>0 ? JSON.parse(myFavNodes) : [] + const tmp = myFavNodes.length > 0 ? JSON.parse(myFavNodes) : []; - this.setState({ myFavNodes: tmp }) + this.setState({ myFavNodes: tmp }); - this.refreshData() + this.refreshData(); } async refreshData() { - const data = await getData() + const data = await getData(); if (this.state.loading) { this.setState({ loading: false }); } - if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') { - console.log('DEV ONLY: Refresh Data Results: ', data) + if (!process.env.NODE_ENV || process.env.NODE_ENV === "development") { + console.log("DEV ONLY: Refresh Data Results: ", data); } - this.setState({data: data.data, globalData: data.globalData, maxChainHeights: data.maxChainHeights, animateBlockCount: false}, ()=>this.setData()) //Change animateBlockCount to true here for animation + this.setState( + { + data: data.data, + globalData: data.globalData, + maxChainHeights: data.maxChainHeights, + animateBlockCount: false, + }, + () => this.setData() + ); //Change animateBlockCount to true here for animation } componentDidMount() { - timer = setInterval(() => { - this.setState({animateBlockCount: false}, ()=>this.refreshData()) + this.setState({ animateBlockCount: false }, () => this.refreshData()); //this.refreshData() - }, 6000) + }, 6000); } componentWillUnmount() { @@ -587,70 +1380,66 @@ export default class extends Component { } addToFav(address) { - const myFavNodes = getCookie('myFavNodes')//JSON.parse( + const myFavNodes = getCookie("myFavNodes"); //JSON.parse( - if(myFavNodes.length===0) { + if (myFavNodes.length === 0) { //in here no current fav nodes - const singleAddress = JSON.stringify([address]) - setCookie('myFavNodes', singleAddress) - this.setState({myFavNodes: singleAddress}, ()=>this.setData()) - + const singleAddress = JSON.stringify([address]); + setCookie("myFavNodes", singleAddress); + this.setState({ myFavNodes: singleAddress }, () => this.setData()); } else { //If we already have some fav nodes - const newFaveNodes = JSON.parse(myFavNodes) + const newFaveNodes = JSON.parse(myFavNodes); //Need to check if already exists if (newFaveNodes.indexOf(address) > -1) { - //In the array! + //In the array! - const newArrayWithRemove = newFaveNodes.filter(item => item!==address) - - const newFaveNodesNew = JSON.stringify(newArrayWithRemove) - this.setState({myFavNodes: newArrayWithRemove}, ()=>this.setData()) - setCookie('myFavNodes', newFaveNodesNew) + const newArrayWithRemove = newFaveNodes.filter( + (item) => item !== address + ); + const newFaveNodesNew = JSON.stringify(newArrayWithRemove); + this.setState({ myFavNodes: newArrayWithRemove }, () => this.setData()); + setCookie("myFavNodes", newFaveNodesNew); } else { - //Not in the array - newFaveNodes[newFaveNodes.length] = address - - const newFaveNodesNew = JSON.stringify(newFaveNodes) + //Not in the array + newFaveNodes[newFaveNodes.length] = address; - this.setState({myFavNodes: newFaveNodes}, ()=>this.setData()) - setCookie('myFavNodes', newFaveNodesNew) + const newFaveNodesNew = JSON.stringify(newFaveNodes); + this.setState({ myFavNodes: newFaveNodes }, () => this.setData()); + setCookie("myFavNodes", newFaveNodesNew); } - } - } returnSearchedData(data) { - if (this.state.searchTerm === '') { - return data - } else { - const filteredNodes = data.filter(item => item.node_address.includes(this.state.searchTerm)) - return filteredNodes - } + if (this.state.searchTerm === "") { + return data; + } else { + const filteredNodes = data.filter((item) => + item.node_address.includes(this.state.searchTerm) + ); + return filteredNodes; + } } setData() { //Grab our state so we can mutate it - let myData = JSON.parse(JSON.stringify(this.state.data)) - - - + let myData = JSON.parse(JSON.stringify(this.state.data)); //Add faves to the data, then we can sort by then below - const newItems = myData.map(item => { - if (this.state.myFavNodes.includes(item.node_address)) { - item.fave = 1 - } else { - item.fave = 0 - } - return item - }); + const newItems = myData.map((item) => { + if (this.state.myFavNodes.includes(item.node_address)) { + item.fave = 1; + } else { + item.fave = 0; + } + return item; + }); -/* + /* Whitelisted Active Standby @@ -658,265 +1447,549 @@ Ready Disabled */ - //Filter for our three tables - let activeNodes = newItems.filter(item => item.status ==='Active') - let standbyNodes = newItems.filter(item => (item.status ==='Standby' || item.status ==='Ready') && item.version === this.state.globalData.maxVersion) - - //Create an array of all nodes that are active and standby - const active_standy_nodes = [ ...activeNodes.map(item => {return item.node_address}), ...standbyNodes.map(item => {return item.node_address})] - //White listed are all other nodes which are not active or on standby - //White listed is really just "Other" - let whitelisted = newItems.filter(item => !active_standy_nodes.includes(item.node_address)) + //Filter for our three tables + let activeNodes = newItems.filter((item) => item.status === "Active"); + let standbyNodes = newItems.filter( + (item) => + (item.status === "Standby" || item.status === "Ready") && + item.version === this.state.globalData.maxVersion + ); - //let whitelisted = newItems.filter(item => !(item.status ==='Active' || item.status ==='Standby' || item.status ==='Ready') /*&& item.version !== this.state.globalData.maxVersion*/) + //Create an array of all nodes that are active and standby + const active_standy_nodes = [ + ...activeNodes.map((item) => { + return item.node_address; + }), + ...standbyNodes.map((item) => { + return item.node_address; + }), + ]; + //White listed are all other nodes which are not active or on standby + //White listed is really just "Other" + let whitelisted = newItems.filter( + (item) => !active_standy_nodes.includes(item.node_address) + ); - activeNodes = this.findChurnOuts(activeNodes) //Add in the actions for churning - standbyNodes = this.findChurnIns(standbyNodes) //Add in the actions for nodes churning in + //let whitelisted = newItems.filter(item => !(item.status ==='Active' || item.status ==='Standby' || item.status ==='Ready') /*&& item.version !== this.state.globalData.maxVersion*/) - //Filter here if any searchTerm from the search bar - //Need to do after adding the actions - activeNodes = this.returnSearchedData(activeNodes) - standbyNodes = this.returnSearchedData(standbyNodes) - whitelisted = this.returnSearchedData(whitelisted) + activeNodes = this.findChurnOuts(activeNodes); //Add in the actions for churning + standbyNodes = this.findChurnIns(standbyNodes); //Add in the actions for nodes churning in - //Sort and add our favs to the top - let activeNodesSorted = this.sortData(activeNodes) - const favActiveNodesSorted = activeNodesSorted.filter(item => item.fave === 1) //Get our favourites - activeNodesSorted = activeNodesSorted.filter(item => item.fave === 0)//Get our non favourites + //Filter here if any searchTerm from the search bar + //Need to do after adding the actions + activeNodes = this.returnSearchedData(activeNodes); + standbyNodes = this.returnSearchedData(standbyNodes); + whitelisted = this.returnSearchedData(whitelisted); - activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted] //Join faves at top with non favourites + //Sort and add our favs to the top + let activeNodesSorted = this.sortData(activeNodes); + const favActiveNodesSorted = activeNodesSorted.filter( + (item) => item.fave === 1 + ); //Get our favourites + activeNodesSorted = activeNodesSorted.filter((item) => item.fave === 0); //Get our non favourites + activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted]; //Join faves at top with non favourites - const standBySorted = this.sortData(standbyNodes) - const whitelistedSorted = this.sortData(whitelisted) + const standBySorted = this.sortData(standbyNodes); + const whitelistedSorted = this.sortData(whitelisted); - this.setState({ - activeNodes: activeNodesSorted, - standByNodes: standBySorted, - whitelistedNodes: whitelistedSorted //This is really just other - }) + this.setState({ + activeNodes: activeNodesSorted, + standByNodes: standBySorted, + whitelistedNodes: whitelistedSorted, //This is really just other + }); } - - onColumnUpdate (config) { - this.setState({ visibleColumns: config }) + onColumnUpdate(config) { + this.setState({ visibleColumns: config }); } - onNodesFilter (key) { - this.setState(prevState => ({ + onNodesFilter(key) { + this.setState((prevState) => ({ nodesFilter: { ...prevState.nodesFilter, - [key]: !prevState.nodesFilter[key] - } + [key]: !prevState.nodesFilter[key], + }, })); } -/* + /* Split the data into over 300ks and under 300ks With the over 300ks, take the top 3 if they exist and apply churn in action If 4 nodes churn in instead of 3 each time, add another row */ findChurnIns(standbyNodes) { - if (standbyNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + if (standbyNodes.length === 0) return []; //Stops filter from breaking when search returns 0 - const over300 = standbyNodes.filter(item => item.bond >= 30000000000000) - const over300Sorted = this.sortData(over300, 'bond', 'desc') + const over300 = standbyNodes.filter((item) => item.bond >= 30000000000000); + const over300Sorted = this.sortData(over300, "bond", "desc"); - if (over300Sorted.length > 0){ - over300Sorted[Math.min(0, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(1, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(2, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(3, over300Sorted.length-1)].action = 'Churn In' - over300Sorted[Math.min(4, over300Sorted.length-1)].action = 'Churn In' + if (over300Sorted.length > 0) { + over300Sorted[Math.min(0, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(1, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(2, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(3, over300Sorted.length - 1)].action = "Churn In"; + over300Sorted[Math.min(4, over300Sorted.length - 1)].action = "Churn In"; } - const under300 = standbyNodes.filter(item => item.bond < 30000000000000) + const under300 = standbyNodes.filter((item) => item.bond < 30000000000000); - return [...over300Sorted, ...under300] + return [...over300Sorted, ...under300]; } -/* + /* Lowest Bond Oldest Node Worst Performer (Can't churn out if just churned in, one cycle grace period) */ findChurnOuts(activeNodes) { - if (activeNodes.length === 0) return [] //Stops filter from breaking when search returns 0 + if (activeNodes.length === 0) return []; //Stops filter from breaking when search returns 0 - let activeNodesSorted = this.sortData(activeNodes, 'age', 'desc') - activeNodesSorted[0].action = 'Oldest' + let activeNodesSorted = this.sortData(activeNodes, "age", "desc"); + activeNodesSorted[0].action = "Oldest"; - activeNodesSorted = this.sortData(activeNodes, 'bond', 'asc') - activeNodesSorted[0].action = 'Smallest Bond' + activeNodesSorted = this.sortData(activeNodes, "bond", "asc"); + activeNodesSorted[0].action = "Smallest Bond"; - activeNodesSorted = this.sortData(activeNodes, 'score', 'asc', true) + activeNodesSorted = this.sortData(activeNodes, "score", "asc", true); //we set the 'Worst Performing' tag in the sortData function - this.calcBadValidatorRedline(activeNodes) + this.calcBadValidatorRedline(activeNodes); - return activeNodesSorted + return activeNodesSorted; } - calcBadValidatorRedline(activeNodes){ + calcBadValidatorRedline(activeNodes) { //Only get nodes with slashes greater than 100 - const greater100Slashes = activeNodes.filter(item => item.slash_points > 100) + const greater100Slashes = activeNodes.filter( + (item) => item.slash_points > 100 + ); //Add all the scores together for thes nodes const sum = greater100Slashes.reduce((accumulator, object) => { return accumulator + parseFloat(object.score); }, 0); //Find the average - const averageScore = sum/(greater100Slashes.length+1) + const averageScore = sum / (greater100Slashes.length + 1); - const validatorLine = averageScore/this.state.globalData.BadValidatorRedline + const validatorLine = + averageScore / this.state.globalData.BadValidatorRedline; - activeNodes.map(item => { - if(item.score < validatorLine) { - item.action = 'Bad Redline' + activeNodes.map((item) => { + if (item.score < validatorLine) { + item.action = "Bad Redline"; } - return 0 - }) - + return 0; + }); } -/* + /* Sort by either string or number We use string sort function if value is one of the arrays else do second sort number */ sortData(data, value = null, direction = null, worst_perform = false) { - const toSortBy = value === null ? this.state.sortBy : value - let newData = [] - - if (['node', 'isp', 'location', 'version', 'action', 'node_address'].includes(toSortBy)){ //This sort function for strings + const toSortBy = value === null ? this.state.sortBy : value; + let newData = []; + + if ( + ["node", "isp", "location", "version", "action", "node_address"].includes( + toSortBy + ) + ) { + //This sort function for strings newData = data.sort((a, b) => a[toSortBy].localeCompare(b[toSortBy])); - - } else if (toSortBy === 'bond_providers') {//This is for bond provider sort as we need to go another layer deep in the object - newData = data.sort((a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length); - - } else if (worst_perform === true) { //This is for when we are sorting for action of worst performance as we want to exclude any with age under 3 days - const ageCutOffDays = 3 - const a = data.filter(item => parseFloat(item.age) > ageCutOffDays) - const b = data.filter(item => parseFloat(item.age) <= ageCutOffDays) - const aSorted = a.sort((a, b) => (b[toSortBy] - a[toSortBy]) ); - - aSorted[aSorted.length-1].action = 'Worst Performing' - newData = [...aSorted, ...b] - - } else { //This sort function for numbers - //When sorting, if values are the same, sort by node_address + } else if (toSortBy === "bond_providers") { + //This is for bond provider sort as we need to go another layer deep in the object newData = data.sort( - function(a, b) { - if (a[toSortBy] === b[toSortBy]) { - return a['node_address'].localeCompare(b['node_address']); - } - return a[toSortBy] > b[toSortBy] ? 1 : -1; - }); + (a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length + ); + } else if (worst_perform === true) { + //This is for when we are sorting for action of worst performance as we want to exclude any with age under 3 days + const ageCutOffDays = 3; + const a = data.filter((item) => parseFloat(item.age) > ageCutOffDays); + const b = data.filter((item) => parseFloat(item.age) <= ageCutOffDays); + const aSorted = a.sort((a, b) => b[toSortBy] - a[toSortBy]); + + aSorted[aSorted.length - 1].action = "Worst Performing"; + newData = [...aSorted, ...b]; + } else { + //This sort function for numbers + //When sorting, if values are the same, sort by node_address + newData = data.sort(function (a, b) { + if (a[toSortBy] === b[toSortBy]) { + return a["node_address"].localeCompare(b["node_address"]); + } + return a[toSortBy] > b[toSortBy] ? 1 : -1; + }); } //If we pass it a direction, we set it here, if not we take it from the state - const toDirection = direction === null ? this.state.sortDirection : direction - if (toDirection === 'desc') { - newData.reverse() + const toDirection = + direction === null ? this.state.sortDirection : direction; + if (toDirection === "desc") { + newData.reverse(); } - return newData + return newData; } - clickSortHeader(item){ - const direction = this.state.sortBy !== item ? 'desc' : this.state.sortDirection === 'desc' ? 'asc' : 'desc'; - this.setState({sortBy: item, sortDirection: direction}, ()=> this.setData()) + clickSortHeader(item) { + const direction = + this.state.sortBy !== item + ? "desc" + : this.state.sortDirection === "desc" + ? "asc" + : "desc"; + this.setState({ sortBy: item, sortDirection: direction }, () => + this.setData() + ); } sortColour(item) { - return '#ffffff' + return "#ffffff"; } - whichHeart(address){ - return this.state.myFavNodes.includes(address) ? heartFull : heartBlank + whichHeart(address) { + return this.state.myFavNodes.includes(address) ? heartFull : heartBlank; } + handleClickSlashes = async (node_address) => { + const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y), + })); + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + + handleClickRewards = async (node_address) => { + const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y), + })); + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + + handleClickBond = async (node_address) => { + const url = `https://api.liquify.com/thor/api/grabBond=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Math.round(Number(y) / 100000000), + })); + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; searchBar() { return ( -
    - this.setState({ searchTerm: event.target.value.trim().toLowerCase()},()=>this.setData())} - prefix={} - /> +
    + + this.setState( + { searchTerm: event.target.value.trim().toLowerCase() }, + () => this.setData() + ) + } + prefix={} + />
    - ) + ); } render() { - const { loading, nodesFilter, visibleColumns, standByNodes } = this.state; + const chartDataConfig = this.state.chartData + ? { + datasets: [ + { + label: "Value", + data: this.state.chartData, + fill: false, + backgroundColor: "rgb(28, 57, 182)", + borderColor: "rgba(28, 57, 187, 0.2)", + }, + ], + } + : {}; + + const slashesOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Height", + }, + ticks: { + callback: function (value, index, values) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Slashes Value", + }, + }, + ], + }, + } + : {}; + + const rewardsOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Height", + }, + ticks: { + callback: function (value, index, values) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Reward Value", + }, + }, + ], + }, + } + : {}; + + const bondOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: Math.min(...this.state.chartData.map((data) => data.x)), + stepSize: 20000, + callback: function (value, index, values) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Bond Value", + }, + ticks: { + min: Math.min(...this.state.chartData.map((data) => data.y)), + stepSize: 20000, + callback: function (value) { + return value.toString(); + }, + }, + }, + ], + }, + } + : {}; + return ( -
    -
    - # - Thornode Monitor -
    -
    -
    this.onNodesFilter('active')}>
    -
    this.onNodesFilter('standby')}>
    -
    this.onNodesFilter('orthers')}>
    -
    - -
    - - +
    +
    + # + Thornode Monitor +
    +
    +
    this.onNodesFilter("active")} + > + +
    +
    this.onNodesFilter("standby")} + > + +
    +
    this.onNodesFilter("orthers")} + > + +
    +
    +
    + {loading && ( -
    +
    + +
    )} - {!(loading) && ( -
    - + {!loading && ( +
    }> Dashboard - Standby Nodes + + Standby Nodes + -
    -
    - +
    +
    +
    - - <> -
    -
    - -
    - {this.searchBar()} - + <> +
    +
    +
    + {this.searchBar()} - {standByNodes.length > 0 && ( - - )} - {standByNodes.length === 0 && ( -
    -
    No Standby Data Available!
    + +
    + + {standByNodes.length > 0 && ( + + )} + {standByNodes.length === 0 && ( +
    +
    + No Standby Data Available! +
    - )} - + )} +
    )} -
    - # - # -
    - Built by: - # -
    -
    - + + ); } } diff --git a/src/containers/A_monitor/styles.css b/src/containers/A_monitor/styles.css index e4a825a..88003f5 100644 --- a/src/containers/A_monitor/styles.css +++ b/src/containers/A_monitor/styles.css @@ -573,3 +573,7 @@ tr:first-child { .sort-icon.up { transform: rotate(180deg); } + +.my-custom-popover .ant-popover-inner { + width: 1000px; +} From e50fedd070a0cef6c8368263a036ebc5cce1ca33 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Mon, 31 Jul 2023 16:42:29 +0100 Subject: [PATCH 43/78] Fix graph drawing --- src/containers/A_monitor/activepage.js | 3 +++ src/containers/A_monitor/monitorpage.js | 3 +++ src/containers/A_monitor/otherpage.js | 3 +++ src/containers/A_monitor/standbypage.js | 3 +++ 4 files changed, 12 insertions(+) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 69b10c3..54d455e 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -1323,6 +1323,7 @@ const NodeTable = ({ chartDataConfig?.datasets?.[0]?.data && chartDataConfig.datasets[0].data.length > 0 ? ( @@ -1371,6 +1372,7 @@ const NodeTable = ({ chartDataConfig?.datasets?.[0]?.data && chartDataConfig.datasets[0].data.length > 0 ? ( @@ -1406,6 +1408,7 @@ const NodeTable = ({ chartDataConfig?.datasets?.[0]?.data && chartDataConfig.datasets[0].data.length > 0 ? ( diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 961238e..ecc43cb 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -1346,6 +1346,7 @@ const NodeTable = ({ chartDataConfig?.datasets?.[0]?.data && chartDataConfig.datasets[0].data.length > 0 ? ( @@ -1394,6 +1395,7 @@ const NodeTable = ({ chartDataConfig?.datasets?.[0]?.data && chartDataConfig.datasets[0].data.length > 0 ? ( @@ -1430,6 +1432,7 @@ const NodeTable = ({ chartDataConfig?.datasets?.[0]?.data && chartDataConfig.datasets[0].data.length > 0 ? ( diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 0c49066..4acad46 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -1085,6 +1085,7 @@ const NodeTable = ({ chartDataConfig?.datasets?.[0]?.data && chartDataConfig.datasets[0].data.length > 0 ? ( @@ -1133,6 +1134,7 @@ const NodeTable = ({ chartDataConfig?.datasets?.[0]?.data && chartDataConfig.datasets[0].data.length > 0 ? ( @@ -1168,6 +1170,7 @@ const NodeTable = ({ chartDataConfig?.datasets?.[0]?.data && chartDataConfig.datasets[0].data.length > 0 ? ( diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 417f6f8..a15e66f 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -1072,6 +1072,7 @@ const NodeTable = ({ chartDataConfig?.datasets?.[0]?.data && chartDataConfig.datasets[0].data.length > 0 ? ( @@ -1120,6 +1121,7 @@ const NodeTable = ({ chartDataConfig?.datasets?.[0]?.data && chartDataConfig.datasets[0].data.length > 0 ? ( @@ -1155,6 +1157,7 @@ const NodeTable = ({ chartDataConfig?.datasets?.[0]?.data && chartDataConfig.datasets[0].data.length > 0 ? ( From 09890dfa517d9e2998303835940846da2808516c Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 1 Aug 2023 09:27:41 +0100 Subject: [PATCH 44/78] Bug fixes Remove Y tick assignment for bond graphs which caused issues with large array of ticks (resulting in crashing) Updated CustomLineChart to be more robust and fixed error with incorrect data display Show, scale rewards charts. --- src/containers/A_monitor/CustomLineChart.js | 32 ++++++++++++++++----- src/containers/A_monitor/activepage.js | 9 +----- src/containers/A_monitor/monitorpage.js | 9 +----- src/containers/A_monitor/otherpage.js | 9 +----- src/containers/A_monitor/standbypage.js | 9 +----- 5 files changed, 29 insertions(+), 39 deletions(-) diff --git a/src/containers/A_monitor/CustomLineChart.js b/src/containers/A_monitor/CustomLineChart.js index 6372421..d29562a 100644 --- a/src/containers/A_monitor/CustomLineChart.js +++ b/src/containers/A_monitor/CustomLineChart.js @@ -3,19 +3,37 @@ import { Chart } from "chart.js"; class CustomLineChart extends Component { chartRef = React.createRef(); - + chartInstance = null; componentDidMount() { + this.createChart(); + } + componentDidUpdate() { + this.updateChart(); + } + componentWillUnmount() { + this.destroyChart(); + } + createChart() { + const { data, options } = this.props; this.chartInstance = new Chart(this.chartRef.current, { type: "line", - data: this.props.data, - options: this.props.options, + data, + options, }); } - - componentWillUnmount() { - this.chartInstance.destroy(); + updateChart() { + const { data, options } = this.props; + if (this.chartInstance) { + this.chartInstance.data = data; + this.chartInstance.options = options; + this.chartInstance.update(); + } + } + destroyChart() { + if (this.chartInstance) { + this.chartInstance.destroy(); + } } - render() { return ; } diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 54d455e..f57eca4 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -1974,7 +1974,7 @@ We use string sort function if value is one of the arrays else do second sort nu } else { const chartData = Object.entries(rawData).map(([x, y]) => ({ x: Number(x), - y: Number(y), + y: Math.round(Number(y) / 100000000), })); this.setState({ chartData }); } @@ -2146,13 +2146,6 @@ We use string sort function if value is one of the arrays else do second sort nu display: true, labelString: "Bond Value", }, - ticks: { - min: Math.min(...this.state.chartData.map((data) => data.y)), - stepSize: 20000, - callback: function (value) { - return value.toString(); - }, - }, }, ], }, diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index ecc43cb..87c456d 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -1994,7 +1994,7 @@ We use string sort function if value is one of the arrays else do second sort nu } else { const chartData = Object.entries(rawData).map(([x, y]) => ({ x: Number(x), - y: Number(y), + y: Math.round(Number(y) / 100000000), })); this.setState({ chartData }); } @@ -2166,13 +2166,6 @@ We use string sort function if value is one of the arrays else do second sort nu display: true, labelString: "Bond Value", }, - ticks: { - min: Math.min(...this.state.chartData.map((data) => data.y)), - stepSize: 20000, - callback: function (value) { - return value.toString(); - }, - }, }, ], }, diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 4acad46..a10c197 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -1695,7 +1695,7 @@ We use string sort function if value is one of the arrays else do second sort nu } else { const chartData = Object.entries(rawData).map(([x, y]) => ({ x: Number(x), - y: Number(y), + y: Math.round(Number(y) / 100000000), })); this.setState({ chartData }); } @@ -1851,13 +1851,6 @@ We use string sort function if value is one of the arrays else do second sort nu display: true, labelString: "Bond Value", }, - ticks: { - min: Math.min(...this.state.chartData.map((data) => data.y)), - stepSize: 20000, - callback: function (value) { - return value.toString(); - }, - }, }, ], }, diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index a15e66f..6bdc2f1 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -1680,7 +1680,7 @@ We use string sort function if value is one of the arrays else do second sort nu } else { const chartData = Object.entries(rawData).map(([x, y]) => ({ x: Number(x), - y: Number(y), + y: Math.round(Number(y) / 100000000), })); this.setState({ chartData }); } @@ -1835,13 +1835,6 @@ We use string sort function if value is one of the arrays else do second sort nu display: true, labelString: "Bond Value", }, - ticks: { - min: Math.min(...this.state.chartData.map((data) => data.y)), - stepSize: 20000, - callback: function (value) { - return value.toString(); - }, - }, }, ], }, From 44b407b0fb18d9ab8bbcd88908d6351bb3227c72 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 1 Aug 2023 10:30:52 +0100 Subject: [PATCH 45/78] Make lines straight, change chart headings --- src/containers/A_monitor/activepage.js | 11 ++++++----- src/containers/A_monitor/monitorpage.js | 11 ++++++----- src/containers/A_monitor/otherpage.js | 11 ++++++----- src/containers/A_monitor/standbypage.js | 11 ++++++----- 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index f57eca4..c99b4aa 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -2053,6 +2053,7 @@ We use string sort function if value is one of the arrays else do second sort nu fill: false, backgroundColor: "rgb(28, 57, 182)", borderColor: "rgba(28, 57, 187, 0.2)", + tension: 0, }, ], } @@ -2067,7 +2068,7 @@ We use string sort function if value is one of the arrays else do second sort nu position: "bottom", scaleLabel: { display: true, - labelString: "Height", + labelString: "Block Height", }, ticks: { callback: function (value, index, values) { @@ -2097,7 +2098,7 @@ We use string sort function if value is one of the arrays else do second sort nu position: "bottom", scaleLabel: { display: true, - labelString: "Height", + labelString: "Block Height", }, ticks: { callback: function (value, index, values) { @@ -2110,7 +2111,7 @@ We use string sort function if value is one of the arrays else do second sort nu { scaleLabel: { display: true, - labelString: "Reward Value", + labelString: "Reward Amount (ᚱ)", }, }, ], @@ -2127,7 +2128,7 @@ We use string sort function if value is one of the arrays else do second sort nu position: "bottom", scaleLabel: { display: true, - labelString: "Height", + labelString: "Block Height", }, ticks: { autoSkip: true, @@ -2144,7 +2145,7 @@ We use string sort function if value is one of the arrays else do second sort nu { scaleLabel: { display: true, - labelString: "Bond Value", + labelString: "Bond Amount (ᚱ)", }, }, ], diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 87c456d..e4da1e0 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -2073,6 +2073,7 @@ We use string sort function if value is one of the arrays else do second sort nu fill: false, backgroundColor: "rgb(28, 57, 182)", borderColor: "rgba(28, 57, 187, 0.2)", + tension: 0, }, ], } @@ -2087,7 +2088,7 @@ We use string sort function if value is one of the arrays else do second sort nu position: "bottom", scaleLabel: { display: true, - labelString: "Height", + labelString: "Block Height", }, ticks: { callback: function (value, index, values) { @@ -2117,7 +2118,7 @@ We use string sort function if value is one of the arrays else do second sort nu position: "bottom", scaleLabel: { display: true, - labelString: "Height", + labelString: "Block Height", }, ticks: { callback: function (value, index, values) { @@ -2130,7 +2131,7 @@ We use string sort function if value is one of the arrays else do second sort nu { scaleLabel: { display: true, - labelString: "Reward Value", + labelString: "Reward Amount (ᚱ)", }, }, ], @@ -2147,7 +2148,7 @@ We use string sort function if value is one of the arrays else do second sort nu position: "bottom", scaleLabel: { display: true, - labelString: "Height", + labelString: "Block Height", }, ticks: { autoSkip: true, @@ -2164,7 +2165,7 @@ We use string sort function if value is one of the arrays else do second sort nu { scaleLabel: { display: true, - labelString: "Bond Value", + labelString: "Bond Amount (ᚱ)", }, }, ], diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index a10c197..6e03320 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -1758,6 +1758,7 @@ We use string sort function if value is one of the arrays else do second sort nu fill: false, backgroundColor: "rgb(28, 57, 182)", borderColor: "rgba(28, 57, 187, 0.2)", + tension: 0, }, ], } @@ -1772,7 +1773,7 @@ We use string sort function if value is one of the arrays else do second sort nu position: "bottom", scaleLabel: { display: true, - labelString: "Height", + labelString: "Block Height", }, ticks: { callback: function (value, index, values) { @@ -1802,7 +1803,7 @@ We use string sort function if value is one of the arrays else do second sort nu position: "bottom", scaleLabel: { display: true, - labelString: "Height", + labelString: "Block Height", }, ticks: { callback: function (value, index, values) { @@ -1815,7 +1816,7 @@ We use string sort function if value is one of the arrays else do second sort nu { scaleLabel: { display: true, - labelString: "Reward Value", + labelString: "Reward Amount (ᚱ)", }, }, ], @@ -1832,7 +1833,7 @@ We use string sort function if value is one of the arrays else do second sort nu position: "bottom", scaleLabel: { display: true, - labelString: "Height", + labelString: "Block Height", }, ticks: { autoSkip: true, @@ -1849,7 +1850,7 @@ We use string sort function if value is one of the arrays else do second sort nu { scaleLabel: { display: true, - labelString: "Bond Value", + labelString: "Bond Amount (ᚱ)", }, }, ], diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 6bdc2f1..80376fc 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -1742,6 +1742,7 @@ We use string sort function if value is one of the arrays else do second sort nu fill: false, backgroundColor: "rgb(28, 57, 182)", borderColor: "rgba(28, 57, 187, 0.2)", + tension: 0, }, ], } @@ -1756,7 +1757,7 @@ We use string sort function if value is one of the arrays else do second sort nu position: "bottom", scaleLabel: { display: true, - labelString: "Height", + labelString: "Block Height", }, ticks: { callback: function (value, index, values) { @@ -1786,7 +1787,7 @@ We use string sort function if value is one of the arrays else do second sort nu position: "bottom", scaleLabel: { display: true, - labelString: "Height", + labelString: "Block Height", }, ticks: { callback: function (value, index, values) { @@ -1799,7 +1800,7 @@ We use string sort function if value is one of the arrays else do second sort nu { scaleLabel: { display: true, - labelString: "Reward Value", + labelString: "Reward Amount (ᚱ)", }, }, ], @@ -1816,7 +1817,7 @@ We use string sort function if value is one of the arrays else do second sort nu position: "bottom", scaleLabel: { display: true, - labelString: "Height", + labelString: "Block Height", }, ticks: { autoSkip: true, @@ -1833,7 +1834,7 @@ We use string sort function if value is one of the arrays else do second sort nu { scaleLabel: { display: true, - labelString: "Bond Value", + labelString: "Bond Amount (ᚱ)", }, }, ], From f501898573f59052b01d5ff9afeb4517ca2bcd78 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 1 Aug 2023 10:59:15 +0100 Subject: [PATCH 46/78] Update ISP list --- src/assets/images/Aljeel.png | Bin 0 -> 19068 bytes src/assets/images/Hostinger.png | Bin 0 -> 6603 bytes src/containers/A_monitor/activepage.js | 10 ++++++++++ src/containers/A_monitor/monitorpage.js | 10 ++++++++++ src/containers/A_monitor/otherpage.js | 10 ++++++++++ src/containers/A_monitor/standbypage.js | 10 ++++++++++ 6 files changed, 40 insertions(+) create mode 100644 src/assets/images/Aljeel.png create mode 100644 src/assets/images/Hostinger.png diff --git a/src/assets/images/Aljeel.png b/src/assets/images/Aljeel.png new file mode 100644 index 0000000000000000000000000000000000000000..83634c9156c94b8a56a8347c2e953062b658a89a GIT binary patch literal 19068 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/Hostinger.png b/src/assets/images/Hostinger.png new file mode 100644 index 0000000000000000000000000000000000000000..968db12559a585a1eef45da70f2b91ace24e6896 GIT binary patch literal 6603 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 { return #; } + if (isp === "Aljeel Aljadeed For Technology") { + return #; + } + + if (isp === "Hostinger International Limited") { + return #; + } + return "-"; }; diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index e4da1e0..3414b70 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -35,6 +35,8 @@ import imageChoopa from "@iso/assets/images/choopa.png"; import imageChartercoms from "@iso/assets/images/chartercoms.png"; import imageATandT from "@iso/assets/images/atandt.png"; import imageZenlayer from "@iso/assets/images/zenlayer.png"; +import imageAljeel from "@iso/assets/images/Aljeel.png" +import imageHostinger from "@iso/assets/images/Hostinger.png" import binance from "@iso/assets/images/binance.png"; import eth from "@iso/assets/images/eth.png"; @@ -501,6 +503,14 @@ const ReturnIspImage = ({ isp }) => { return #; } + if (isp === "Aljeel Aljadeed For Technology") { + return #; + } + + if (isp === "Hostinger International Limited") { + return #; + } + return "-"; }; diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 6e03320..3baa886 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -28,6 +28,8 @@ import imageChoopa from "@iso/assets/images/choopa.png"; import imageChartercoms from "@iso/assets/images/chartercoms.png"; import imageATandT from "@iso/assets/images/atandt.png"; import imageZenlayer from "@iso/assets/images/zenlayer.png"; +import imageAljeel from "@iso/assets/images/Aljeel.png" +import imageHostinger from "@iso/assets/images/Hostinger.png" import binance from "@iso/assets/images/binance.png"; import eth from "@iso/assets/images/eth.png"; @@ -487,6 +489,14 @@ const ReturnIspImage = ({ isp }) => { return #; } + if (isp === "Aljeel Aljadeed For Technology") { + return #; + } + + if (isp === "Hostinger International Limited") { + return #; + } + return "-"; }; diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 80376fc..10baff0 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -23,6 +23,8 @@ import imageChoopa from "@iso/assets/images/choopa.png"; import imageChartercoms from "@iso/assets/images/chartercoms.png"; import imageATandT from "@iso/assets/images/atandt.png"; import imageZenlayer from "@iso/assets/images/zenlayer.png"; +import imageAljeel from "@iso/assets/images/Aljeel.png" +import imageHostinger from "@iso/assets/images/Hostinger.png" import binance from "@iso/assets/images/binance.png"; import eth from "@iso/assets/images/eth.png"; @@ -479,6 +481,14 @@ const ReturnIspImage = ({ isp }) => { return #; } + if (isp === "Aljeel Aljadeed For Technology") { + return #; + } + + if (isp === "Hostinger International Limited") { + return #; + } + return "-"; }; From 55011a940e455a0b09a017249b627b3919a2614c Mon Sep 17 00:00:00 2001 From: dannydango Date: Wed, 2 Aug 2023 12:43:34 +0100 Subject: [PATCH 47/78] History and Graph fix --- src/containers/A_monitor/CustomLineChart.js | 20 ++++ src/containers/A_monitor/activepage.js | 92 ++++++++++++++---- src/containers/A_monitor/monitorpage.js | 101 ++++++++++++++++---- src/containers/A_monitor/otherpage.js | 89 +++++++++++++---- src/containers/A_monitor/standbypage.js | 89 +++++++++++++---- 5 files changed, 324 insertions(+), 67 deletions(-) diff --git a/src/containers/A_monitor/CustomLineChart.js b/src/containers/A_monitor/CustomLineChart.js index d29562a..8f65e45 100644 --- a/src/containers/A_monitor/CustomLineChart.js +++ b/src/containers/A_monitor/CustomLineChart.js @@ -4,15 +4,32 @@ import { Chart } from "chart.js"; class CustomLineChart extends Component { chartRef = React.createRef(); chartInstance = null; + componentDidMount() { this.createChart(); } + + shouldComponentUpdate(nextProps) { + const { data } = this.props; + const nextData = nextProps.data; + + if (data.datasets.length !== nextData.datasets.length) return true; + + for (let i = 0; i < data.datasets.length; i++) { + if (data.datasets[i].data !== nextData.datasets[i].data) return true; + } + + return false; + } + componentDidUpdate() { this.updateChart(); } + componentWillUnmount() { this.destroyChart(); } + createChart() { const { data, options } = this.props; this.chartInstance = new Chart(this.chartRef.current, { @@ -21,6 +38,7 @@ class CustomLineChart extends Component { options, }); } + updateChart() { const { data, options } = this.props; if (this.chartInstance) { @@ -29,11 +47,13 @@ class CustomLineChart extends Component { this.chartInstance.update(); } } + destroyChart() { if (this.chartInstance) { this.chartInstance.destroy(); } } + render() { return ; } diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index c99b4aa..1fcfdb3 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -10,7 +10,12 @@ import { Layout, Button, Input, Modal, Switch, Breadcrumb, Select } from "antd"; import "./styles.css"; import { Link } from "react-router-dom"; import { PUBLIC_ROUTE } from "../../route.constants"; -import { SearchOutlined, LeftOutlined, RightOutlined } from "@ant-design/icons"; +import { + SearchOutlined, + LeftOutlined, + RightOutlined, + HistoryOutlined, +} from "@ant-design/icons"; import heartBlank from "@iso/assets/images/heart-blank.png"; import heartFull from "@iso/assets/images/heart-full.png"; @@ -531,6 +536,7 @@ const BondProviderPopOver = ({ data }) => { }; const NodeTable = ({ + handlePopoverVisibility, nodeData, clickSortHeader, handleClickBond, @@ -1336,18 +1342,28 @@ const NodeTable = ({ )}`} trigger="click" overlayClassName="my-custom-popover" + onVisibleChange={(visible) => + handlePopoverVisibility(visible) + } > - ᚱ - {parseInt( - (item.bond / 100000000).toFixed() - ).toLocaleString()} + + ᚱ + {parseInt( + (item.bond / 100000000).toFixed() + ).toLocaleString()} + - {" "} + handlePopoverVisibility(visible) + } > - ᚱ - {parseInt( - (item.current_award / 100000000).toFixed() - ).toLocaleString()} + + ᚱ + {parseInt( + (item.current_award / 100000000).toFixed() + ).toLocaleString()} + + handlePopoverVisibility(visible) + } > - {parseInt(item.slash_points).toLocaleString()} + + + {parseInt(item.slash_points).toLocaleString()} + { + this.setState({ isPopoverOpen: visible }); + }; + async componentWillMount() { const myFavNodes = getCookie("myFavNodes"); @@ -1612,6 +1656,9 @@ export default class extends Component { } async refreshData() { + if (this.state.isPopoverOpen) { + return; + } const data = await getData(); if (this.state.loading) { @@ -1685,12 +1732,17 @@ export default class extends Component { } returnSearchedData(data) { - if (this.state.searchTerm === '') { - return data - } else { - const filteredNodes = data.filter(item => {return (item.node_address.includes(this.state.searchTerm) || item.bondProvidersString.includes(this.state.searchTerm))}) - return filteredNodes - } + if (this.state.searchTerm === "") { + return data; + } else { + const filteredNodes = data.filter((item) => { + return ( + item.node_address.includes(this.state.searchTerm) || + item.bondProvidersString.includes(this.state.searchTerm) + ); + }); + return filteredNodes; + } } setData() { @@ -1946,6 +1998,7 @@ We use string sort function if value is one of the arrays else do second sort nu return this.state.myFavNodes.includes(address) ? heartFull : heartBlank; } handleClickSlashes = async (node_address) => { + this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`; try { const response = await fetch(url); @@ -1965,6 +2018,7 @@ We use string sort function if value is one of the arrays else do second sort nu }; handleClickRewards = async (node_address) => { + this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`; try { const response = await fetch(url); @@ -1984,6 +2038,7 @@ We use string sort function if value is one of the arrays else do second sort nu }; handleClickBond = async (node_address) => { + this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabBond=${node_address}`; try { const response = await fetch(url); @@ -2265,6 +2320,7 @@ We use string sort function if value is one of the arrays else do second sort nu bondOptions={bondOptions} rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} + handlePopoverVisibility={this.handlePopoverVisibility} /> )} {activeNodes.length === 0 && ( @@ -2319,6 +2375,7 @@ We use string sort function if value is one of the arrays else do second sort nu bondOptions={bondOptions} rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} + handlePopoverVisibility={this.handlePopoverVisibility} /> )} {standByNodes.length === 0 && ( @@ -2372,6 +2429,7 @@ We use string sort function if value is one of the arrays else do second sort nu bondOptions={bondOptions} rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} + handlePopoverVisibility={this.handlePopoverVisibility} /> )} {whitelistedNodes.length === 0 && ( diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index e4da1e0..31e12f3 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -16,7 +16,12 @@ import { Layout, Button, Input, Breadcrumb, Select } from "antd"; import "./styles.css"; import { Link } from "react-router-dom"; import { PUBLIC_ROUTE } from "../../route.constants"; -import { SearchOutlined, LeftOutlined, RightOutlined } from "@ant-design/icons"; +import { + SearchOutlined, + LeftOutlined, + RightOutlined, + HistoryOutlined, +} from "@ant-design/icons"; //import { retiringVault } from './data.js' //https://thornode.ninerealms.com/thorchain/vaults/asgard import heartBlank from "@iso/assets/images/heart-blank.png"; @@ -546,6 +551,7 @@ const BondProviderPopOver = ({ data }) => { }; const NodeTable = ({ + handlePopoverVisibility, nodeData, clickSortHeader, handleClickBond, @@ -1333,7 +1339,14 @@ const NodeTable = ({ - + {item.location} + handlePopoverVisibility(visible) + } > - ᚱ - {parseInt( - (item.bond / 100000000).toFixed() - ).toLocaleString()} + + ᚱ + {parseInt( + (item.bond / 100000000).toFixed() + ).toLocaleString()} + - {" "} + handlePopoverVisibility(visible) + } > - ᚱ - {parseInt( - (item.current_award / 100000000).toFixed() - ).toLocaleString()} + + ᚱ + {parseInt( + (item.current_award / 100000000).toFixed() + ).toLocaleString()} + @@ -1445,8 +1479,20 @@ const NodeTable = ({ )}`} trigger="click" overlayClassName="my-custom-popover" + onVisibleChange={(visible) => + handlePopoverVisibility(visible) + } > - {parseInt(item.slash_points).toLocaleString()} + + + {parseInt(item.slash_points).toLocaleString()} + @@ -1604,6 +1650,7 @@ export default class extends Component { constructor(props) { super(props); this.state = { + isPopoverOpen: false, chartData: [], data: [], globalData: [], @@ -1626,6 +1673,10 @@ export default class extends Component { this.handleClickBond = this.handleClickBond.bind(this); } + handlePopoverVisibility = (visible) => { + this.setState({ isPopoverOpen: visible }); + }; + async componentWillMount() { const myFavNodes = getCookie("myFavNodes"); @@ -1637,6 +1688,9 @@ export default class extends Component { } async refreshData() { + if (this.state.isPopoverOpen) { + return; + } const data = await getData(); if (this.state.loading) { @@ -1710,12 +1764,17 @@ export default class extends Component { } returnSearchedData(data) { - if (this.state.searchTerm === '') { - return data - } else { - const filteredNodes = data.filter(item => {return (item.node_address.includes(this.state.searchTerm) || item.bondProvidersString.includes(this.state.searchTerm))}) - return filteredNodes - } + if (this.state.searchTerm === "") { + return data; + } else { + const filteredNodes = data.filter((item) => { + return ( + item.node_address.includes(this.state.searchTerm) || + item.bondProvidersString.includes(this.state.searchTerm) + ); + }); + return filteredNodes; + } } setData() { @@ -1966,6 +2025,7 @@ We use string sort function if value is one of the arrays else do second sort nu } handleClickSlashes = async (node_address) => { + this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`; try { const response = await fetch(url); @@ -1985,6 +2045,7 @@ We use string sort function if value is one of the arrays else do second sort nu }; handleClickRewards = async (node_address) => { + this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`; try { const response = await fetch(url); @@ -2004,6 +2065,7 @@ We use string sort function if value is one of the arrays else do second sort nu }; handleClickBond = async (node_address) => { + this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabBond=${node_address}`; try { const response = await fetch(url); @@ -2303,6 +2365,7 @@ We use string sort function if value is one of the arrays else do second sort nu bondOptions={bondOptions} rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} + handlePopoverVisibility={this.handlePopoverVisibility} /> )} {activeNodes.length === 0 && ( @@ -2357,6 +2420,7 @@ We use string sort function if value is one of the arrays else do second sort nu bondOptions={bondOptions} rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} + handlePopoverVisibility={this.handlePopoverVisibility} /> )} {standByNodes.length === 0 && ( @@ -2410,6 +2474,7 @@ We use string sort function if value is one of the arrays else do second sort nu bondOptions={bondOptions} rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} + handlePopoverVisibility={this.handlePopoverVisibility} /> )} {whitelistedNodes.length === 0 && ( diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 6e03320..b908fff 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -10,7 +10,12 @@ import CustomLineChart from "./CustomLineChart"; import "./styles.css"; import { Link } from "react-router-dom"; import { PUBLIC_ROUTE } from "../../route.constants"; -import { SearchOutlined, LeftOutlined, RightOutlined } from "@ant-design/icons"; +import { + SearchOutlined, + LeftOutlined, + RightOutlined, + HistoryOutlined, +} from "@ant-design/icons"; import heartBlank from "@iso/assets/images/heart-blank.png"; import heartFull from "@iso/assets/images/heart-full.png"; @@ -532,6 +537,7 @@ const BondProviderPopOver = ({ data }) => { }; const NodeTable = ({ + handlePopoverVisibility, nodeData, clickSortHeader, handleClickBond, @@ -1098,11 +1104,22 @@ const NodeTable = ({ )}`} trigger="click" overlayClassName="my-custom-popover" + onVisibleChange={(visible) => + handlePopoverVisibility(visible) + } > - ᚱ - {parseInt( - (item.bond / 100000000).toFixed() - ).toLocaleString()} + + ᚱ + {parseInt( + (item.bond / 100000000).toFixed() + ).toLocaleString()} + + handlePopoverVisibility(visible) + } > - ᚱ - {parseInt( - (item.current_award / 100000000).toFixed() - ).toLocaleString()} + + ᚱ + {parseInt( + (item.current_award / 100000000).toFixed() + ).toLocaleString()} + + handlePopoverVisibility(visible) + } > - {parseInt(item.slash_points).toLocaleString()} + + + {parseInt(item.slash_points).toLocaleString()} + { + this.setState({ isPopoverOpen: visible }); + }; + async componentWillMount() { const myFavNodes = getCookie("myFavNodes"); @@ -1363,6 +1408,9 @@ export default class extends Component { } async refreshData() { + if (this.state.isPopoverOpen) { + return; + } const data = await getData(); if (this.state.loading) { @@ -1433,12 +1481,17 @@ export default class extends Component { } returnSearchedData(data) { - if (this.state.searchTerm === '') { - return data - } else { - const filteredNodes = data.filter(item => {return (item.node_address.includes(this.state.searchTerm) || item.bondProvidersString.includes(this.state.searchTerm))}) - return filteredNodes - } + if (this.state.searchTerm === "") { + return data; + } else { + const filteredNodes = data.filter((item) => { + return ( + item.node_address.includes(this.state.searchTerm) || + item.bondProvidersString.includes(this.state.searchTerm) + ); + }); + return filteredNodes; + } } setData() { @@ -1667,6 +1720,7 @@ We use string sort function if value is one of the arrays else do second sort nu } handleClickSlashes = async (node_address) => { + this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`; try { const response = await fetch(url); @@ -1686,6 +1740,7 @@ We use string sort function if value is one of the arrays else do second sort nu }; handleClickRewards = async (node_address) => { + this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`; try { const response = await fetch(url); @@ -1705,6 +1760,7 @@ We use string sort function if value is one of the arrays else do second sort nu }; handleClickBond = async (node_address) => { + this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabBond=${node_address}`; try { const response = await fetch(url); @@ -1967,6 +2023,7 @@ We use string sort function if value is one of the arrays else do second sort nu bondOptions={bondOptions} rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} + handlePopoverVisibility={this.handlePopoverVisibility} /> )} {whitelistedNodes.length === 0 && ( diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 80376fc..381965a 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -7,7 +7,12 @@ import { Layout, Button, Input, Breadcrumb, Select } from "antd"; import { Line } from "react-chartjs-2"; import CustomLineChart from "./CustomLineChart"; import "./styles.css"; -import { SearchOutlined, LeftOutlined, RightOutlined } from "@ant-design/icons"; +import { + SearchOutlined, + LeftOutlined, + RightOutlined, + HistoryOutlined, +} from "@ant-design/icons"; import heartBlank from "@iso/assets/images/heart-blank.png"; import heartFull from "@iso/assets/images/heart-full.png"; import imageDO from "@iso/assets/images/do.png"; @@ -524,6 +529,7 @@ const BondProviderPopOver = ({ data }) => { }; const NodeTable = ({ + handlePopoverVisibility, nodeData, clickSortHeader, handleClickBond, @@ -1085,11 +1091,22 @@ const NodeTable = ({ )}`} trigger="click" overlayClassName="my-custom-popover" + onVisibleChange={(visible) => + handlePopoverVisibility(visible) + } > - ᚱ - {parseInt( - (item.bond / 100000000).toFixed() - ).toLocaleString()} + + ᚱ + {parseInt( + (item.bond / 100000000).toFixed() + ).toLocaleString()} + + handlePopoverVisibility(visible) + } > - ᚱ - {parseInt( - (item.current_award / 100000000).toFixed() - ).toLocaleString()} + + ᚱ + {parseInt( + (item.current_award / 100000000).toFixed() + ).toLocaleString()} + + handlePopoverVisibility(visible) + } > - {parseInt(item.slash_points).toLocaleString()} + + + {parseInt(item.slash_points).toLocaleString()} + { + this.setState({ isPopoverOpen: visible }); + }; + async componentWillMount() { const myFavNodes = getCookie("myFavNodes"); @@ -1350,6 +1395,9 @@ export default class extends Component { } async refreshData() { + if (this.state.isPopoverOpen) { + return; + } const data = await getData(); if (this.state.loading) { @@ -1418,12 +1466,17 @@ export default class extends Component { } returnSearchedData(data) { - if (this.state.searchTerm === '') { - return data - } else { - const filteredNodes = data.filter(item => {return (item.node_address.includes(this.state.searchTerm) || item.bondProvidersString.includes(this.state.searchTerm))}) - return filteredNodes - } + if (this.state.searchTerm === "") { + return data; + } else { + const filteredNodes = data.filter((item) => { + return ( + item.node_address.includes(this.state.searchTerm) || + item.bondProvidersString.includes(this.state.searchTerm) + ); + }); + return filteredNodes; + } } setData() { @@ -1652,6 +1705,7 @@ We use string sort function if value is one of the arrays else do second sort nu } handleClickSlashes = async (node_address) => { + this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`; try { const response = await fetch(url); @@ -1671,6 +1725,7 @@ We use string sort function if value is one of the arrays else do second sort nu }; handleClickRewards = async (node_address) => { + this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`; try { const response = await fetch(url); @@ -1690,6 +1745,7 @@ We use string sort function if value is one of the arrays else do second sort nu }; handleClickBond = async (node_address) => { + this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabBond=${node_address}`; try { const response = await fetch(url); @@ -1951,6 +2007,7 @@ We use string sort function if value is one of the arrays else do second sort nu bondOptions={bondOptions} rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} + handlePopoverVisibility={this.handlePopoverVisibility} /> )} {standByNodes.length === 0 && ( From ae6783941157294a2606555532793056875aafb1 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Thu, 3 Aug 2023 11:10:57 +0100 Subject: [PATCH 48/78] Update max effective Icon --- src/assets/images/overview/vertical-align-top.svg | 6 ++++++ src/containers/A_monitor/activepage.js | 3 ++- src/containers/A_monitor/monitorpage.js | 3 ++- src/containers/A_monitor/otherpage.js | 3 ++- src/containers/A_monitor/standbypage.js | 3 ++- 5 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 src/assets/images/overview/vertical-align-top.svg diff --git a/src/assets/images/overview/vertical-align-top.svg b/src/assets/images/overview/vertical-align-top.svg new file mode 100644 index 0000000..2f59b2d --- /dev/null +++ b/src/assets/images/overview/vertical-align-top.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 91f3023..f22be4d 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -57,6 +57,7 @@ import mcapRankIcon from "@iso/assets/images/overview/mcap_rank.svg"; import runeUsdtIcon from "@iso/assets/images/overview/rune_usdt.svg"; import timeIcon from "@iso/assets/images/overview/time_icon.svg"; import totalSupplyIcon from "@iso/assets/images/overview/total_supply.svg"; +import verticalTopIcon from "@iso/assets/images/overview/vertical-align-top.svg"; import filterIcon from "@iso/assets/images/overview/filter.svg"; import loadingIcon from "@iso/assets/images/overview/loading.png"; import githubIcon from "@iso/assets/images/overview/github_link_icon.svg"; @@ -369,7 +370,7 @@ const GlobalData = ({ globalData, animateBlockCount, state }) => {
    - # + #
    MAX EFFECTIVE BOND
    diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index 16257c4..e5cc613 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -64,6 +64,7 @@ import mcapRankIcon from "@iso/assets/images/overview/mcap_rank.svg"; import runeUsdtIcon from "@iso/assets/images/overview/rune_usdt.svg"; import timeIcon from "@iso/assets/images/overview/time_icon.svg"; import totalSupplyIcon from "@iso/assets/images/overview/total_supply.svg"; +import verticalTopIcon from "@iso/assets/images/overview/vertical-align-top.svg"; import filterIcon from "@iso/assets/images/overview/filter.svg"; import loadingIcon from "@iso/assets/images/overview/loading.png"; import githubIcon from "@iso/assets/images/overview/github_link_icon.svg"; @@ -384,7 +385,7 @@ const GlobalData = ({ globalData, animateBlockCount, state }) => {
    - # + #
    MAX EFFECTIVE BOND
    diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index f93808a..6ee5fc1 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -56,6 +56,7 @@ import mcapRankIcon from "@iso/assets/images/overview/mcap_rank.svg"; import runeUsdtIcon from "@iso/assets/images/overview/rune_usdt.svg"; import timeIcon from "@iso/assets/images/overview/time_icon.svg"; import totalSupplyIcon from "@iso/assets/images/overview/total_supply.svg"; +import verticalTopIcon from "@iso/assets/images/overview/vertical-align-top.svg"; import filterIcon from "@iso/assets/images/overview/filter.svg"; import loadingIcon from "@iso/assets/images/overview/loading.png"; import githubIcon from "@iso/assets/images/overview/github_link_icon.svg"; @@ -370,7 +371,7 @@ const GlobalData = ({ globalData, animateBlockCount, state }) => {
    - # + #
    MAX EFFECTIVE BOND
    diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 5e3d934..5e0f514 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -59,6 +59,7 @@ import powerIcon from "@iso/assets/images/overview/power.svg"; import activeIcon from "@iso/assets/images/overview/active_icon.svg"; import VisibleColumn from "@iso/components/VisibleColumn/VisibleColumn"; import arrowDownIcon from "@iso/assets/images/overview/arrow-down.svg"; +import verticalTopIcon from "@iso/assets/images/overview/vertical-align-top.svg"; const leaveIcon = ( {
    - # + #
    MAX EFFECTIVE BOND
    From 5ba228e1029c57713b8eb365a621608b25c36835 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Thu, 3 Aug 2023 11:14:48 +0100 Subject: [PATCH 49/78] Update vertical-align-top.svg --- src/assets/images/overview/vertical-align-top.svg | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/assets/images/overview/vertical-align-top.svg b/src/assets/images/overview/vertical-align-top.svg index 2f59b2d..59b9783 100644 --- a/src/assets/images/overview/vertical-align-top.svg +++ b/src/assets/images/overview/vertical-align-top.svg @@ -1,6 +1,5 @@ - - + - + \ No newline at end of file From 9d2b26231de07f50dc3b5ea0f7cfc26c41eb5864 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Thu, 3 Aug 2023 11:19:23 +0100 Subject: [PATCH 50/78] Update vertical-align-top.svg --- src/assets/images/overview/vertical-align-top.svg | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/assets/images/overview/vertical-align-top.svg b/src/assets/images/overview/vertical-align-top.svg index 59b9783..1ec6a56 100644 --- a/src/assets/images/overview/vertical-align-top.svg +++ b/src/assets/images/overview/vertical-align-top.svg @@ -1,5 +1,6 @@ + - + - \ No newline at end of file + From f5b7ae8203412dbc9e019e93f7c6802d6ec530af Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Tue, 8 Aug 2023 12:27:32 +0100 Subject: [PATCH 51/78] Add API to grab versions and store more country info --- backend python/backend.py | 29 ++++++++++++++++++++++ backend python/thormonitor_collect_data.py | 10 +++++--- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/backend python/backend.py b/backend python/backend.py index 02dba25..b26adca 100644 --- a/backend python/backend.py +++ b/backend python/backend.py @@ -69,6 +69,35 @@ def grabRewards(node): return jsonify(interim) +@app.route('/thor/api/versions', methods=['GET']) +@cross_origin() +def grabVersion(): + data = grabQuery('SELECT * FROM noderunner.thornode_monitor where status="Active"') + + output = {} + for key in data: + if key["version"] not in output: + output[key["version"]] = 1 + else: + output[key["version"]] += 1 + + return jsonify(output) + +@app.route('/thor/api/locations', methods=['GET']) +@cross_origin() +def grabLocation(): + data = grabQuery('SELECT * FROM noderunner.thornode_monitor where status="Active" OR status="Standby"') + + output = {} + for key in data: + if key["country"] != '': + if key["country"] not in output: + output[key["country"]] = 1 + else: + output[key["country"]] += 1 + + return jsonify(output) + def main(): """ main contains the main loop which simply spins every minuite and update the various DBs diff --git a/backend python/thormonitor_collect_data.py b/backend python/thormonitor_collect_data.py index 140fa48..e8d2960 100644 --- a/backend python/thormonitor_collect_data.py +++ b/backend python/thormonitor_collect_data.py @@ -128,7 +128,9 @@ def gradDataAndSaveToDB(): observe_chains=json.dumps(node['observe_chains']), preflight_status=json.dumps(node['preflight_status']), status=node['status'], - status_since=node['status_since'], bp_string=bond_providersString, version=node['version'], + status_since=node['status_since'], + bp_string=bond_providersString, + version=node['version'], node_address=node['node_address']) commitQuery(query) @@ -154,11 +156,11 @@ def gradDataAndSaveToDB(): query = "INSERT INTO noderunner.thornode_monitor (node_address, ip_address, location, isp, " \ "active_block_height, bond_providers, bond, current_award, slash_points,forced_to_leave, " \ "requested_to_leave, jail, bond_address, observe_chains, preflight_status, status, " \ - "status_since, version) VALUES ('{node_address}', '{ip_address}','{city}','{isp}'," \ + "status_since, version, country,country_code) VALUES ('{node_address}', '{ip_address}','{city}','{isp}'," \ "'{active_block_height}','{bond_providers}','{bond}','{current_award}','{slash_points}'," \ "'{forced_to_leave}','{requested_to_leave}', '{jail}','{bond_address}'," \ "'{observe_chains}','{preflight_status}','{status}','{status_since}'," \ - "'{version}')".format(node_address=node['node_address'], ip_address=node['ip_address'], + "'{version}','{country}','{country_code}')".format(node_address=node['node_address'], ip_address=node['ip_address'], city=node['ip_data']['city'], isp=node['ip_data']['isp'], active_block_height=node['active_block_height'], bond_providers=json.dumps(node['bond_providers']), bond=int(node['total_bond']), @@ -168,5 +170,5 @@ def gradDataAndSaveToDB(): jail=json.dumps(node['jail']), bond_address='', observe_chains=json.dumps(node['observe_chains']), preflight_status=json.dumps(node['preflight_status']), status=node['status'], - status_since=node['status_since'], version=node['version']) + status_since=node['status_since'], version=node['version'],country=node['ip_data']['country'],country_code=node['ip_data']['countryCode']) commitQuery(query) From cdc876ad0396d2ccad0f90c9ae201637b64af0d9 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Fri, 11 Aug 2023 11:37:15 +0100 Subject: [PATCH 52/78] Add swagger docs and fix bug on new node addition causing 5xx errors on location grabbing --- backend python/backend.py | 109 ++++++++++++++++++++- backend python/flaskTemplate.py | 35 +++++++ backend python/thormonitor_collect_data.py | 2 + 3 files changed, 144 insertions(+), 2 deletions(-) create mode 100644 backend python/flaskTemplate.py diff --git a/backend python/backend.py b/backend python/backend.py index b26adca..2d9b662 100644 --- a/backend python/backend.py +++ b/backend python/backend.py @@ -8,12 +8,16 @@ from thornode_collect_data_global import collectDataGlobal from thormonitor_collect_data_rpc_bifrost import biFrostGrabDataAndSaveToDB from thornode_historical_data import checkIfNewChurn +from flasgger import Swagger +from flaskTemplate import template as flaskTemplate +from flaskTemplate import swagger_config as swaggerConfig from threading import Thread app = Flask(__name__) cors = CORS(app) app.config['CORS_HEADERS'] = 'Content-Type' +swagger = Swagger(app, template=flaskTemplate,config=swaggerConfig) def flaskThread(): @@ -25,8 +29,12 @@ def flaskThread(): def grabData(): """ grabData is used to output the DB in json format, fires on api accesses - - return: json containing the current data from thornode_monitor and thornode_monitor_global tables + --- + tags: + - General + responses: + 200: + description: json containing the current data from thornode_monitor and thornode_monitor_global tables """ currentDBData = (grabQuery('SELECT * FROM noderunner.thornode_monitor')) globalData = (grabQuery('SELECT * FROM noderunner.thornode_monitor_global')) @@ -36,6 +44,22 @@ def grabData(): @app.route('/thor/api/grabBond=', methods=['GET']) @cross_origin() def grabBond(node): + """Grab a nodes bond over past churns + API used to inspect the bond amount of a node over time. + --- + tags: + - Historical + parameters: + - name: node + in: path + type: string + required: true + default: thor1sngd0zz6pwdx2e20sml27354vzkrwa4fnjxvnc + description: The node to look at + responses: + 200: + description: The bond amount of a node over past churns + """ data = grabQuery("SELECT * FROM noderunner.thornode_monitor_historic where node_address='{field}' ORDER BY churnHeight ASC".format( field=node)) @@ -48,6 +72,22 @@ def grabBond(node): @app.route('/thor/api/grabSlashes=', methods=['GET']) @cross_origin() def grabSlashes(node): + """Grab a nodes slashes over past churns + API used to inspect the slash amount of a node over time. + --- + tags: + - Historical + parameters: + - name: node + in: path + type: string + required: true + default: thor1sngd0zz6pwdx2e20sml27354vzkrwa4fnjxvnc + description: The node to look at + responses: + 200: + description: The slash amount of a node over past churns + """ data = grabQuery("SELECT * FROM noderunner.thornode_monitor_historic where node_address='{field}' ORDER BY churnHeight ASC".format( field=node)) @@ -60,6 +100,22 @@ def grabSlashes(node): @app.route('/thor/api/grabRewards=', methods=['GET']) @cross_origin() def grabRewards(node): + """Grab a nodes Rewards over past churns + API used to inspect the rewards amount of a node over time. + --- + tags: + - Historical + parameters: + - name: node + in: path + type: string + required: true + default: thor1sngd0zz6pwdx2e20sml27354vzkrwa4fnjxvnc + description: The node to look at + responses: + 200: + description: The rewards amount of a node over past churns + """ data = grabQuery("SELECT * FROM noderunner.thornode_monitor_historic where node_address='{field}' ORDER BY churnHeight ASC".format( field=node)) @@ -72,6 +128,14 @@ def grabRewards(node): @app.route('/thor/api/versions', methods=['GET']) @cross_origin() def grabVersion(): + """Grab the versions of active nodes on the network + --- + tags: + - General + responses: + 200: + description: the breakdown of node versions on the network + """ data = grabQuery('SELECT * FROM noderunner.thornode_monitor where status="Active"') output = {} @@ -86,6 +150,14 @@ def grabVersion(): @app.route('/thor/api/locations', methods=['GET']) @cross_origin() def grabLocation(): + """Grab the hosted country of Active and Standby nodes on the network + --- + tags: + - General + responses: + 200: + description: the breakdown of node locations on the network + """ data = grabQuery('SELECT * FROM noderunner.thornode_monitor where status="Active" OR status="Standby"') output = {} @@ -98,6 +170,39 @@ def grabLocation(): return jsonify(output) +@app.route('/thor/api/grabPosition=', methods=['GET']) +@cross_origin() +def grabPositions(node): + """Grab a nodes relative performance over past churns + API returns the position out of others based on slashes from previous churns. positions 1-max (number of nodes in churn) 1 being lowest/best. + + 0 = Not active that churn + --- + tags: + - Historical + parameters: + - name: node + in: path + type: string + required: true + default: thor1sngd0zz6pwdx2e20sml27354vzkrwa4fnjxvnc + description: The node to look at + responses: + 200: + description: The node position compared to other active nodes over past churns + """ + data = grabQuery( + "SELECT * FROM noderunner.thornode_monitor_historic where node_address='{field}' ORDER BY churnHeight ASC".format( + field=node)) + + interim = {} + for key in data: + interim[key['churnHeight']] = {} + interim[key['churnHeight']]['position'] = key['position'] + interim[key['churnHeight']]['max'] = key['maxNodes'] + + return jsonify(interim) + def main(): """ main contains the main loop which simply spins every minuite and update the various DBs diff --git a/backend python/flaskTemplate.py b/backend python/flaskTemplate.py new file mode 100644 index 0000000..0a76bdb --- /dev/null +++ b/backend python/flaskTemplate.py @@ -0,0 +1,35 @@ +template = { + "swagger": "2.0", + "info": { + "title": "Liquify thornode API", + "description": "API to easily access thornode data", + "specs_route": "/thor/api/docs", + "contact": { + "responsibleOrganization": "Liquify LTD", + "responsibleDeveloper": "Liquify LTD", + "email": "contact@liquify.io", + "url": "https://www.liquify.io", + }, + "version": "1.0" + }, + "host": "api.liquify.com/", + "specs_route": "/thor/api/docs", + "schemes": [ + "https" + ] +} + +swagger_config = { + "headers": [ + ], + "specs": [ + { + "endpoint": 'specifications', + "route": '/specifications.json', + "rule_filter": lambda rule: True, # all in + "model_filter": lambda tag: True, # all in + } + ], + "static_url_path": "/flasgger_static", + "specs_route": "/thor/api/docs" +} \ No newline at end of file diff --git a/backend python/thormonitor_collect_data.py b/backend python/thormonitor_collect_data.py index e8d2960..d949c0e 100644 --- a/backend python/thormonitor_collect_data.py +++ b/backend python/thormonitor_collect_data.py @@ -152,6 +152,8 @@ def gradDataAndSaveToDB(): node['ip_data'] = {} node['ip_data']['city'] = "" node['ip_data']['isp'] = "" + node['ip_data']['country'] = "" + node['ip_data']['countryCode'] = "" query = "INSERT INTO noderunner.thornode_monitor (node_address, ip_address, location, isp, " \ "active_block_height, bond_providers, bond, current_award, slash_points,forced_to_leave, " \ From 144a47d1495a05bcc56415d5e066850486e7d02f Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Fri, 11 Aug 2023 13:48:18 +0100 Subject: [PATCH 53/78] Add some more apis to grab historical churn data --- backend python/backend.py | 57 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/backend python/backend.py b/backend python/backend.py index 2d9b662..87fa94e 100644 --- a/backend python/backend.py +++ b/backend python/backend.py @@ -1,7 +1,7 @@ import time from common import grabQuery -from flask import Flask, jsonify +from flask import Flask, jsonify, abort from flask_cors import CORS, cross_origin from thormonitor_collect_data import gradDataAndSaveToDB from thormonitor_update_ips import updateIPs @@ -203,6 +203,61 @@ def grabPositions(node): return jsonify(interim) +@app.route('/thor/api/grabChurns', methods=['GET']) +@cross_origin() +def grabChurns(): + """Returns a list of past churns which are indexed by the API + --- + tags: + - Historical + responses: + 200: + description: List of churn heights indexed + """ + churns = grabQuery( + "SELECT DISTINCT churnHeight FROM noderunner.thornode_monitor_historic ORDER BY churnHeight ASC") + + churnData = [] + + for key in churns: + churnData.append(key["churnHeight"]) + + return jsonify(churnData) + +@app.route('/thor/api/grabHistoricData=', methods=['GET']) +@cross_origin() +def grabHistoricData(churn): + """Returns a the data for all nodes on the network at the given chrun height + --- + tags: + - Historical + parameters: + - name: churn + in: path + type: int + required: true + default: 11867388 + description: The indexed churn to grab data from + responses: + 200: + description: List of churn heights indexed + 404: + description: Churn height not indexed + """ + entries = len(grabQuery("SELECT * FROM noderunner.thornode_monitor_historic where churnHeight='{field}'".format( + field=churn))) + + if (entries == 0): + abort(404,'Churn height ' + str(churn) + ' not indexed') + + + data = grabQuery( + "SELECT * FROM noderunner.thornode_monitor_historic WHERE churnHeight='{field}'".format( + field=churn)) + + return jsonify(data) + + def main(): """ main contains the main loop which simply spins every minuite and update the various DBs From 19b715c6ebdd0ca2c15504da58dbdfb32b8a0661 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Fri, 11 Aug 2023 13:53:48 +0100 Subject: [PATCH 54/78] bug fix --- backend python/thornode_historical_data.py | 55 +++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/backend python/thornode_historical_data.py b/backend python/thornode_historical_data.py index 45bda93..0cad959 100644 --- a/backend python/thornode_historical_data.py +++ b/backend python/thornode_historical_data.py @@ -6,6 +6,50 @@ from common import getDB, commitQuery, grabQuery +def positionFiller(churn): + """ + backPort fills in historical database for the churn height passed in + + :param churn: height to grab data for + """ + data = grabQuery( + "SELECT * FROM noderunner.thornode_monitor_historic WHERE churnHeight='{field}' AND status='Active' ORDER BY slash_points ASC".format( + field=churn)) + + itr = 1 + for key in data: + query = "UPDATE noderunner.thornode_monitor_historic SET " \ + "position = '{position}' " \ + "WHERE (node_address = '{node_address}' AND churnHeight = '{height}');".format( + position=itr, + node_address=key['node_address'], + height=churn) + commitQuery(query) + + itr+=1 + +def fillMax(churn): + """ + backPort fills in historical database for the churn height passed in + + :param churn: height to grab data for + """ + data = grabQuery( + "SELECT * FROM noderunner.thornode_monitor_historic WHERE churnHeight='{field}' ORDER BY slash_points ASC".format( + field=churn)) + + number = grabQuery( + "SELECT COUNT(*) FROM noderunner.thornode_monitor_historic WHERE churnHeight='{height}' AND status='Active'".format( + height=churn + ))[0]['COUNT(*)'] + + itr = 1 + query = "UPDATE noderunner.thornode_monitor_historic SET " \ + "maxNodes = '{maxNodes}' " \ + "WHERE (churnHeight = '{height}');".format( + maxNodes=number, + height=churn) + commitQuery(query) def checkIfNewChurn(): """ @@ -46,15 +90,21 @@ def checkIfNewChurn(): node['ip_data'] = {} node['ip_data']['city'] = "" node['ip_data']['isp'] = "" + node['ip_data']['country'] = "" + node['ip_data']['countryCode'] = "" + else: node['ip_data'] = {} node['ip_data']['city'] = ipData[0]['location'] node['ip_data']['isp'] = ipData[0]['isp'] - + node['ip_data']['country'] = ipData[0]['country'] + node['ip_data']['countryCode'] = ipData[0]['countryCode'] else: node['ip_data'] = {} node['ip_data']['city'] = "" node['ip_data']['isp'] = "" + node['ip_data']['country'] = "" + node['ip_data']['countryCode'] = "" query = "INSERT INTO noderunner.thornode_monitor_historic (node_address, ip_address, location, isp, " \ "active_block_height, bond_providers, bond, current_award, slash_points,forced_to_leave, " \ @@ -74,4 +124,7 @@ def checkIfNewChurn(): status_since=node['status_since'], version=node['version'], churnHeight=lastChurn) commitQuery(query) + positionFiller(lastChurn) + fillMax(lastChurn) + From 4b2fc3840db7a52dea460815628c190a282a9ca2 Mon Sep 17 00:00:00 2001 From: dannydango Date: Wed, 6 Sep 2023 09:46:49 +0100 Subject: [PATCH 55/78] New graphs feature --- src/assets/images/overview/chartLineIcon.svg | 14 + src/assets/images/overview/globe_icon.svg | 1 + src/assets/images/overview/version_icon.svg | 1 + src/components/VisibleColumn/VisibleColumn.js | 243 ++++++++++-- src/containers/A_monitor/CustomPieChart.js | 72 ++++ .../A_monitor/CustomScatterChart.js | 66 ++++ src/containers/A_monitor/activepage.js | 358 +++++++++++++++++- src/containers/A_monitor/monitorpage.js | 357 ++++++++++++++++- src/containers/A_monitor/otherpage.js | 345 ++++++++++++++++- src/containers/A_monitor/standbypage.js | 349 ++++++++++++++++- src/containers/A_monitor/styles.css | 66 +++- src/containers/A_monitor/useApiData.js | 24 ++ 12 files changed, 1790 insertions(+), 106 deletions(-) create mode 100644 src/assets/images/overview/chartLineIcon.svg create mode 100644 src/assets/images/overview/globe_icon.svg create mode 100644 src/assets/images/overview/version_icon.svg create mode 100644 src/containers/A_monitor/CustomPieChart.js create mode 100644 src/containers/A_monitor/CustomScatterChart.js create mode 100644 src/containers/A_monitor/useApiData.js diff --git a/src/assets/images/overview/chartLineIcon.svg b/src/assets/images/overview/chartLineIcon.svg new file mode 100644 index 0000000..7423bd5 --- /dev/null +++ b/src/assets/images/overview/chartLineIcon.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/images/overview/globe_icon.svg b/src/assets/images/overview/globe_icon.svg new file mode 100644 index 0000000..d01f7c0 --- /dev/null +++ b/src/assets/images/overview/globe_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/overview/version_icon.svg b/src/assets/images/overview/version_icon.svg new file mode 100644 index 0000000..e1da9c3 --- /dev/null +++ b/src/assets/images/overview/version_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/VisibleColumn/VisibleColumn.js b/src/components/VisibleColumn/VisibleColumn.js index 7a9598f..2880c60 100644 --- a/src/components/VisibleColumn/VisibleColumn.js +++ b/src/components/VisibleColumn/VisibleColumn.js @@ -1,104 +1,269 @@ -import React, { useState } from 'react'; -import { Modal, Button, Switch } from 'antd'; +import React, { useState } from "react"; +import { Modal, Button, Switch } from "antd"; +import globe_icon from "@iso/assets/images/overview/globe_icon.svg"; +import version_icon from "@iso/assets/images/overview/version_icon.svg"; +import CustomPieChart from "@iso/containers/A_monitor/CustomPieChart.js"; +import useApiData from "@iso/containers/A_monitor/useApiData.js"; -import filterIcon from '@iso/assets/images/overview/filter.svg'; +import filterIcon from "@iso/assets/images/overview/filter.svg"; function VisibleColumn({ initialConfig, onConfigUpdate }) { const [isModalVisible, setIsModalVisible] = useState(false); const [config, setConfig] = useState({ - ...initialConfig + ...initialConfig, }); + const { + data: locationData, + loading: locationLoading, + error: locationError, + } = useApiData("https://api.liquify.com/thor/api/locations"); + + const { + data: versionData, + loading: versionLoading, + error: versionError, + } = useApiData("https://api.liquify.com/thor/api/versions"); + + if (locationLoading || versionLoading) return

    Loading...

    ; + if (locationError || versionError) return

    Error loading data

    ; + + const locationPieChartData = { + labels: Object.keys(locationData), + datasets: [ + { + data: Object.values(locationData), + backgroundColor: [ + "#003f5c", + "#2f4b7c", + "#665191", + "#a05195", + "#d45087", + "#f95d6a", + "#ff7c43", + "#ffa600", + "#00876c", + "#439981", + "#6aaa96", + "#8cbcac", + "#aecdc2", + "#cfdfd9", + "#ee7d4f", + "#f1d4d4", + "#f0b8b8", + "#ec9c9d", + "#e67f83", + "#de6069", + "#633EBB", + ], + }, + ], + }; + + const versionPieChartData = { + labels: Object.keys(versionData), + datasets: [ + { + data: Object.values(versionData), + backgroundColor: ["#FD4E5D", "#B3CEE2", "#1C39BB"], + }, + ], + }; + + const chartOptions = { + fullSize: true, + responsive: true, + legend: { + position: "top", + }, + animation: { + animateScale: true, + animateRotate: true, + }, + }; + const handleConfigChange = (key, value) => { - setConfig(prevConfig => ({ ...prevConfig, [key]: value })); + setConfig((prevConfig) => ({ ...prevConfig, [key]: value })); }; const handleOk = () => { setIsModalVisible(false); - console.log('Updated config:', config); + console.log("Updated config:", config); if (onConfigUpdate) { onConfigUpdate(config); } }; const handleCancel = () => { - setIsModalVisible(false); + setIsModalVisible(""); }; - const handleOpenModal = () => { - setIsModalVisible(true); + const handleOpenModal = (modalType) => { + setIsModalVisible(modalType); }; return (
    - + + + + -
    -
    +
    +
    Nodes - handleConfigChange('nodes', checked)} /> + handleConfigChange("nodes", checked)} + />
    -
    +
    Age - handleConfigChange('age', checked)} /> + handleConfigChange("age", checked)} + />
    -
    +
    Action - handleConfigChange('action', checked)} /> + handleConfigChange("action", checked)} + />
    -
    +
    ISP - handleConfigChange('isp', checked)} /> + handleConfigChange("isp", checked)} + />
    -
    +
    Bond - handleConfigChange('bond', checked)} /> + handleConfigChange("bond", checked)} + />
    -
    +
    Providers - handleConfigChange('providers', checked)} /> + handleConfigChange("providers", checked)} + />
    -
    +
    Rewards - handleConfigChange('rewards', checked)} /> + handleConfigChange("rewards", checked)} + />
    -
    +
    APY - handleConfigChange('apy', checked)} /> + handleConfigChange("apy", checked)} + />
    -
    +
    Slashes - handleConfigChange('slashes', checked)} /> + handleConfigChange("slashes", checked)} + />
    -
    +
    Score - handleConfigChange('score', checked)} /> + handleConfigChange("score", checked)} + />
    -
    +
    Version - handleConfigChange('version', checked)} /> + handleConfigChange("version", checked)} + />
    -
    +
    RPC - handleConfigChange('rpc', checked)} /> + handleConfigChange("rpc", checked)} + />
    -
    +
    BFR - handleConfigChange('bfr', checked)} /> + handleConfigChange("bfr", checked)} + />
    + + Close + , + ]} + > + + + + Close + , + ]} + > + +
    ); } -export default VisibleColumn; \ No newline at end of file +export default VisibleColumn; diff --git a/src/containers/A_monitor/CustomPieChart.js b/src/containers/A_monitor/CustomPieChart.js new file mode 100644 index 0000000..8118081 --- /dev/null +++ b/src/containers/A_monitor/CustomPieChart.js @@ -0,0 +1,72 @@ +import React, { Component } from "react"; +import { Chart } from "chart.js"; + +class CustomPieChart extends Component { + chartRef = React.createRef(); + chartInstance = null; + + componentDidMount() { + this.createChart(); + } + + shouldComponentUpdate(nextProps) { + const { data: currentData } = this.props; + const nextData = nextProps.data; + + if (currentData.datasets.length !== nextData.datasets.length) return true; + + for (let i = 0; i < currentData.datasets.length; i++) { + if ( + JSON.stringify(currentData.datasets[i].data) !== + JSON.stringify(nextData.datasets[i].data) + ) + return true; + } + + return false; + } + + componentDidUpdate(prevProps) { + if (prevProps.isModalOpen && !this.props.isModalOpen) { + this.updateChart(); + } + } + + componentWillUnmount() { + this.destroyChart(); + } + + createChart() { + const { data, options } = this.props; + this.chartInstance = new Chart(this.chartRef.current, { + type: "doughnut", + data, + options, + }); + } + + updateChart() { + const { data, options } = this.props; + if (this.chartInstance) { + this.chartInstance.data = data; + this.chartInstance.options = options; + this.chartInstance.update(); + } + } + + destroyChart() { + if (this.chartInstance) { + this.chartInstance.destroy(); + } + } + + render() { + return ( +
    + +
    + ); + } +} + +export default CustomPieChart; diff --git a/src/containers/A_monitor/CustomScatterChart.js b/src/containers/A_monitor/CustomScatterChart.js new file mode 100644 index 0000000..d3e1e79 --- /dev/null +++ b/src/containers/A_monitor/CustomScatterChart.js @@ -0,0 +1,66 @@ +import React, { Component } from "react"; +import { Chart } from "chart.js"; + +class CustomScatterChart extends Component { + chartRef = React.createRef(); + chartInstance = null; + + componentDidMount() { + this.createChart(); + } + + shouldComponentUpdate(nextProps) { + const { data } = this.props; + const nextData = nextProps.data; + + if (!data || !nextData) return true; // Added this to handle undefined or null data + + if (!data.datasets || !nextData.datasets) return true; // Handle the case where datasets might be undefined or not an array + + if (data.datasets.length !== nextData.datasets.length) return true; + + for (let i = 0; i < data.datasets.length; i++) { + if (data.datasets[i].data !== nextData.datasets[i].data) return true; + } + + return false; + } + + componentDidUpdate() { + this.updateChart(); + } + + componentWillUnmount() { + this.destroyChart(); + } + + createChart() { + const { data, options } = this.props; + this.chartInstance = new Chart(this.chartRef.current, { + type: "scatter", + data, + options, + }); + } + + updateChart() { + const { data, options } = this.props; + if (this.chartInstance) { + this.chartInstance.data = data; + this.chartInstance.options = options; + this.chartInstance.update(); + } + } + + destroyChart() { + if (this.chartInstance) { + this.chartInstance.destroy(); + } + } + + render() { + return ; + } +} + +export default CustomScatterChart; diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index f22be4d..50eefea 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -2,6 +2,7 @@ import React, { Component, useState } from "react"; import isEmpty from "lodash/isEmpty"; import { Line } from "react-chartjs-2"; import CustomLineChart from "./CustomLineChart"; +import CustomScatterChart from "./CustomScatterChart"; import Modals from "@iso/components/Feedback/Modal"; import Popover from "@iso/components/uielements/popover"; import { getData, setCookie, getCookie } from "CommonFunctions"; @@ -15,6 +16,7 @@ import { LeftOutlined, RightOutlined, HistoryOutlined, + DotChartOutlined, } from "@ant-design/icons"; import heartBlank from "@iso/assets/images/heart-blank.png"; @@ -33,8 +35,8 @@ import imageChoopa from "@iso/assets/images/choopa.png"; import imageChartercoms from "@iso/assets/images/chartercoms.png"; import imageATandT from "@iso/assets/images/atandt.png"; import imageZenlayer from "@iso/assets/images/zenlayer.png"; -import imageAljeel from "@iso/assets/images/Aljeel.png" -import imageHostinger from "@iso/assets/images/Hostinger.png" +import imageAljeel from "@iso/assets/images/Aljeel.png"; +import imageHostinger from "@iso/assets/images/Hostinger.png"; import binance from "@iso/assets/images/binance.png"; import eth from "@iso/assets/images/eth.png"; @@ -51,6 +53,7 @@ import blockIcon from "@iso/assets/images/overview/block_icon.svg"; import highTradingIcon from "@iso/assets/images/overview/24high_trading.svg"; import lowTradingIcon from "@iso/assets/images/overview/24low_trading.svg"; import bondIcon from "@iso/assets/images/overview/Bond_icon.svg"; +import chartLineIcon from "@iso/assets/images/overview/chartLineIcon.svg"; import churnsIcon from "@iso/assets/images/overview/churns_icon.svg"; import marcketCapIcon from "@iso/assets/images/overview/marcket_Cap.svg"; import mcapRankIcon from "@iso/assets/images/overview/mcap_rank.svg"; @@ -303,7 +306,18 @@ const Icons = ({ address, ip_address, addToFav, whichHeart }) => { ); }; -const GlobalData = ({ globalData, animateBlockCount, state }) => { +const GlobalData = ({ + globalData, + animateBlockCount, + state, + chartData, + handleClickTotalBond, + chartDataConfig, + totalBondOptions, + handlePopoverVisibility, + handleMaxEffectiveStake, + maxStakeOptions, +}) => { let timeToDisplay = ""; let msgTitle = ""; if (globalData?.churnTry && globalData?.retiring === "false") { @@ -369,18 +383,73 @@ const GlobalData = ({ globalData, animateBlockCount, state }) => {
    -
    - # -
    -
    MAX EFFECTIVE BOND
    -
    - ᚱ - {parseInt( - globalData.maxEffectiveStake / 100000000 - ).toLocaleString()} + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title="Max Effective Stake Over Time" + trigger="click" + overlayClassName="my-custom-popover" + onVisibleChange={(visible) => handlePopoverVisibility(visible)} + > +
    + # +
    +
    MAX EFFECTIVE BOND
    +
    + ᚱ + {parseInt( + globalData.maxEffectiveStake / 100000000 + ).toLocaleString()} +
    -
    + + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title="Total Bond Over Time" + trigger="click" + overlayClassName="my-custom-popover" + onVisibleChange={(visible) => handlePopoverVisibility(visible)} + > +
    + # +
    +
    + TOTAL BOND OVER TIME +
    +
    CLICK HERE
    +
    +
    +
    ); }; @@ -562,6 +631,9 @@ const NodeTable = ({ bondOptions, rewardsOptions, slashesOptions, + maxPositionOptions, + maxPositionChartDataConfig, + handleNodePosition, visibleColumns = { ...defaulColumns }, sortBy = "", sortDirection = "", @@ -640,7 +712,7 @@ const NodeTable = ({ />
    -
    +
    \r\n );\r\n};\r\n\r\nconst BondProviderPopOver = ({ data }) => {\r\n const totalBond = data\r\n .map((item) => parseInt(item.bond))\r\n .reduce((a, b) => a + b, 0);\r\n\r\n const d = data.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.bond_address.substring(\r\n item.bond_address.length - 4,\r\n item.bond_address.length\r\n )}\r\n \r\n {((item.bond / totalBond) * 100).toFixed(2)}%\r\n \r\n ᚱ{parseInt((item.bond / 100000000).toFixed()).toLocaleString()}\r\n \r\n \r\n );\r\n });\r\n return d;\r\n};\r\n\r\nconst NodeTable = ({\r\n handlePopoverVisibility,\r\n nodeData,\r\n clickSortHeader,\r\n handleClickBond,\r\n handleClickRewards,\r\n handleClickSlashes,\r\n sortColour,\r\n maxChainHeights,\r\n chains,\r\n addToFav,\r\n whichHeart,\r\n chartDataConfig,\r\n bondOptions,\r\n rewardsOptions,\r\n slashesOptions,\r\n maxPositionOptions,\r\n maxPositionChartDataConfig,\r\n handleNodePosition,\r\n visibleColumns = { ...defaulColumns },\r\n sortBy = \"\",\r\n sortDirection = \"\",\r\n}) => {\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [itemsPerPage, setItemsPerPage] = useState(100);\r\n\r\n const totalPages = Math.ceil(nodeData.length / itemsPerPage);\r\n const pageNumbers = [];\r\n\r\n for (let i = 1; i <= totalPages; i++) {\r\n pageNumbers.push(i);\r\n }\r\n\r\n const handleClick = (event) => {\r\n setCurrentPage(Number(event.target.id));\r\n };\r\n\r\n const handleNext = () => {\r\n setCurrentPage((prevPage) =>\r\n prevPage === totalPages ? prevPage : prevPage + 1\r\n );\r\n };\r\n\r\n const handlePrev = () => {\r\n setCurrentPage((prevPage) => (prevPage === 1 ? prevPage : prevPage - 1));\r\n };\r\n\r\n const renderPageNumbers = pageNumbers.map((number) => {\r\n return (\r\n \r\n {number}\r\n \r\n );\r\n });\r\n\r\n const indexOfLastItem = currentPage * itemsPerPage;\r\n const indexOfFirstItem = indexOfLastItem - itemsPerPage;\r\n const currentItems = nodeData.slice(indexOfFirstItem, indexOfLastItem);\r\n\r\n const getHeaderClassName = (key) => {\r\n return visibleColumns && visibleColumns[key]\r\n ? \"tableHeader\"\r\n : \"tableHeader hidden\";\r\n };\r\n\r\n const getCellClassName = (key) => {\r\n return visibleColumns && visibleColumns[key] ? \"\" : \"hidden\";\r\n };\r\n\r\n const updatePagingItem = (value) => {\r\n setItemsPerPage(value);\r\n };\r\n return (\r\n <>\r\n
    \r\n Nodes per page:\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n clickSortHeader(\"node_address\")}\r\n >\r\n \r\n Validator Nodes\r\n \r\n \r\n \r\n clickSortHeader(\"age\")}\r\n >\r\n \r\n Age\r\n \r\n \r\n \r\n clickSortHeader(\"action\")}\r\n >\r\n \r\n Action\r\n \r\n \r\n \r\n clickSortHeader(\"isp\")}\r\n >\r\n \r\n ISP\r\n \r\n \r\n \r\n clickSortHeader(\"location\")}\r\n >\r\n \r\n Location\r\n \r\n \r\n \r\n clickSortHeader(\"bond\")}\r\n >\r\n \r\n Bond\r\n \r\n \r\n \r\n clickSortHeader(\"bond_providers\")}\r\n >\r\n \r\n Providers\r\n \r\n \r\n \r\n clickSortHeader(\"current_award\")}\r\n >\r\n \r\n Rewards\r\n \r\n \r\n \r\n clickSortHeader(\"apy\")}\r\n >\r\n \r\n APY\r\n \r\n \r\n \r\n clickSortHeader(\"slash_points\")}\r\n >\r\n \r\n Slashes\r\n \r\n \r\n \r\n clickSortHeader(\"score\")}\r\n >\r\n \r\n Score\r\n \r\n \r\n \r\n clickSortHeader(\"version\")}\r\n >\r\n \r\n Version\r\n \r\n \r\n \r\n clickSortHeader(\"leave\")}\r\n >\r\n \r\n {leaveIcon}\r\n \r\n \r\n \r\n\r\n \r\n RPC\r\n \r\n \r\n BFR\r\n \r\n\r\n {chains && (\r\n <>\r\n clickSortHeader(\"BNB\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n clickSortHeader(\"BTC\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n clickSortHeader(\"ETH\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n clickSortHeader(\"LTC\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n clickSortHeader(\"BCH\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n clickSortHeader(\"DOGE\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n clickSortHeader(\"GAIA\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n clickSortHeader(\"AVAX\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n clickSortHeader(\"BSC\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {currentItems.map((item, index) => (\r\n \r\n \r\n {index + 1}\r\n \r\n \r\n \r\n \r\n copyToClipWithPopup(\r\n \"Node address copied to clipboard:\",\r\n item.node_address\r\n )\r\n }\r\n >\r\n {`...${item.node_address.substring(\r\n item.node_address.length - 4\r\n )}`}\r\n \r\n \r\n 0 ? (\r\n \r\n ) : (\r\n
    No data available
    \r\n )\r\n }\r\n title={`Performance Over Time for ${item.node_address.slice(\r\n -4\r\n )}`}\r\n trigger=\"click\"\r\n overlayClassName=\"my-custom-popover\"\r\n onVisibleChange={(visible) =>\r\n handlePopoverVisibility(visible)\r\n }\r\n >\r\n \r\n handleNodePosition(item.node_address)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n {item.age.toFixed(2)}\r\n \r\n \r\n {item.action}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.location}\r\n \r\n handleClickBond(item.node_address)}\r\n >\r\n 0 ? (\r\n \r\n ) : (\r\n
    No data available
    \r\n )\r\n }\r\n title={`Bond Value Over Time for ${item.node_address.slice(\r\n -4\r\n )}`}\r\n trigger=\"click\"\r\n overlayClassName=\"my-custom-popover\"\r\n onVisibleChange={(visible) =>\r\n handlePopoverVisibility(visible)\r\n }\r\n >\r\n \r\n ᚱ\r\n {parseInt(\r\n (item.bond / 100000000).toFixed()\r\n ).toLocaleString()}\r\n \r\n \r\n \r\n \r\n \r\n }\r\n title={\"Bond Providers\"}\r\n trigger=\"hover\"\r\n >\r\n \r\n {item.bond_providers.providers.length}\r\n \r\n \r\n \r\n handleClickRewards(item.node_address)}\r\n >\r\n 0 ? (\r\n \r\n ) : (\r\n
    No data available
    \r\n )\r\n }\r\n title={`Rewards Over Time for ${item.node_address.slice(\r\n -4\r\n )}`}\r\n trigger=\"click\"\r\n overlayClassName=\"my-custom-popover\"\r\n onVisibleChange={(visible) =>\r\n handlePopoverVisibility(visible)\r\n }\r\n >\r\n \r\n ᚱ\r\n {parseInt(\r\n (item.current_award / 100000000).toFixed()\r\n ).toLocaleString()}\r\n \r\n \r\n \r\n\r\n \r\n {item.apy}\r\n \r\n handleClickSlashes(item.node_address)}\r\n >\r\n 0 ? (\r\n \r\n ) : (\r\n
    No data available
    \r\n )\r\n }\r\n title={`Slashes Over Time for ${item.node_address.slice(\r\n -4\r\n )}`}\r\n trigger=\"click\"\r\n overlayClassName=\"my-custom-popover\"\r\n onVisibleChange={(visible) =>\r\n handlePopoverVisibility(visible)\r\n }\r\n >\r\n \r\n \r\n {parseInt(item.slash_points).toLocaleString()}\r\n \r\n \r\n \r\n\r\n \r\n {item.score}\r\n \r\n \r\n {item.version}\r\n \r\n {/*
    */}\r\n \r\n \r\n \r\n {item.rpc !== \"null\" ? \"*\" : \"Bad\"}\r\n \r\n \r\n \r\n \r\n {item.bifrost !== \"null\" ? \"*\" : \"Bad\"}\r\n \r\n \r\n\r\n {chains && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
    + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Max Position Over Time for `} + trigger="click" + overlayClassName="my-custom-popover" + onVisibleChange={(visible) => + handlePopoverVisibility(visible) + } + > + + handleNodePosition(item.node_address)} + /> + +
    { @@ -2008,6 +2115,39 @@ We use string sort function if value is one of the arrays else do second sort nu whichHeart(address) { return this.state.myFavNodes.includes(address) ? heartFull : heartBlank; } + + handleNodePosition = async (node_address) => { + this.setState({ isPopoverOpen: true }); + const url = `https://api.liquify.com/thor/api/grabPosition=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const maxData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y.max), + })); + + const positionData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y.position), + })); + + const allXValues = [...maxData, ...positionData].map( + (dataPoint) => dataPoint.x + ); + const minX = Math.min(...allXValues); + const maxX = Math.max(...allXValues); + + this.setState({ maxData, positionData, minX, maxX }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + handleClickSlashes = async (node_address) => { this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`; @@ -2028,6 +2168,48 @@ We use string sort function if value is one of the arrays else do second sort nu } }; + handleMaxEffectiveStake = async () => { + this.setState({ isPopoverOpen: true }); + const url = `https://api.liquify.com/thor/api/maxEffectiveStake`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Math.round(Number(y) / 100000000), + })); + + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + + handleClickTotalBond = async () => { + this.setState({ isPopoverOpen: true }); + const url = `https://api.liquify.com/thor/api/totalBond`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Math.round(Number(y) / 100000000), + })); + + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + handleClickRewards = async (node_address) => { this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`; @@ -2125,6 +2307,135 @@ We use string sort function if value is one of the arrays else do second sort nu } : {}; + const maxPositionChartDataConfig = + this.state.maxData && this.state.positionData + ? { + datasets: [ + { + label: "Max", + data: this.state.maxData, + backgroundColor: "blue", + pointRadius: 5, + }, + { + label: "Position", + data: this.state.positionData, + backgroundColor: "orange", + pointRadius: 5, + }, + ], + } + : {}; + + const maxStakeOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Block Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: Math.min(...this.state.chartData.map((data) => data.x)), + max: Math.max(...this.state.chartData.map((data) => data.x)), + stepSize: 20000, + callback: function (value) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Max Effective Stake (ᚱ)", + }, + }, + ], + }, + } + : {}; + + const totalBondOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Block Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: Math.min(...this.state.chartData.map((data) => data.x)), + max: Math.max(...this.state.chartData.map((data) => data.x)), + stepSize: 20000, + callback: function (value) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Total Bond Amount (ᚱ)", + }, + }, + ], + }, + } + : {}; + + const maxPositionOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Block Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: this.state.minX, + max: this.state.maxX, + stepSize: 20000, + callback: function (value) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Position", + }, + ticks: { + min: 0, + max: 100, + }, + }, + ], + }, + } + : {}; + const slashesOptions = this.state.chartData ? { scales: { @@ -2289,6 +2600,12 @@ We use string sort function if value is one of the arrays else do second sort nu state={this.state} globalData={this.state.globalData} animateBlockCount={this.state.animateBlockCount} + handleClickTotalBond={this.handleClickTotalBond} + chartDataConfig={chartDataConfig} + totalBondOptions={totalBondOptions} + maxStakeOptions={maxStakeOptions} + handlePopoverVisibility={this.handlePopoverVisibility} + handleMaxEffectiveStake={this.handleMaxEffectiveStake} /> @@ -2332,6 +2649,9 @@ We use string sort function if value is one of the arrays else do second sort nu rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} handlePopoverVisibility={this.handlePopoverVisibility} + handleNodePosition={this.handleNodePosition} + maxPositionChartDataConfig={maxPositionChartDataConfig} + maxPositionOptions={maxPositionOptions} /> )} {activeNodes.length === 0 && ( @@ -2387,6 +2707,9 @@ We use string sort function if value is one of the arrays else do second sort nu rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} handlePopoverVisibility={this.handlePopoverVisibility} + handleNodePosition={this.handleNodePosition} + maxPositionChartDataConfig={maxPositionChartDataConfig} + maxPositionOptions={maxPositionOptions} /> )} {standByNodes.length === 0 && ( @@ -2441,6 +2764,9 @@ We use string sort function if value is one of the arrays else do second sort nu rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} handlePopoverVisibility={this.handlePopoverVisibility} + handleNodePosition={this.handleNodePosition} + maxPositionChartDataConfig={maxPositionChartDataConfig} + maxPositionOptions={maxPositionOptions} /> )} {whitelistedNodes.length === 0 && ( diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index e5cc613..d605020 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -1,8 +1,9 @@ import React, { Component, useState } from "react"; import isEmpty from "lodash/isEmpty"; -import { UpOutlined, DownOutlined } from "@ant-design/icons"; +import { UpOutlined, DownOutlined, DotChartOutlined } from "@ant-design/icons"; import { Line } from "react-chartjs-2"; import CustomLineChart from "./CustomLineChart"; +import CustomScatterChart from "./CustomScatterChart"; //import LayoutContentWrapper from '@iso/components/utility/layoutWrapper'; //import LayoutContent from '@iso/components/utility/layoutContent'; import Modals from "@iso/components/Feedback/Modal"; @@ -40,8 +41,8 @@ import imageChoopa from "@iso/assets/images/choopa.png"; import imageChartercoms from "@iso/assets/images/chartercoms.png"; import imageATandT from "@iso/assets/images/atandt.png"; import imageZenlayer from "@iso/assets/images/zenlayer.png"; -import imageAljeel from "@iso/assets/images/Aljeel.png" -import imageHostinger from "@iso/assets/images/Hostinger.png" +import imageAljeel from "@iso/assets/images/Aljeel.png"; +import imageHostinger from "@iso/assets/images/Hostinger.png"; import binance from "@iso/assets/images/binance.png"; import eth from "@iso/assets/images/eth.png"; @@ -58,6 +59,7 @@ import blockIcon from "@iso/assets/images/overview/block_icon.svg"; import highTradingIcon from "@iso/assets/images/overview/24high_trading.svg"; import lowTradingIcon from "@iso/assets/images/overview/24low_trading.svg"; import bondIcon from "@iso/assets/images/overview/Bond_icon.svg"; +import chartLineIcon from "@iso/assets/images/overview/chartLineIcon.svg"; import churnsIcon from "@iso/assets/images/overview/churns_icon.svg"; import marcketCapIcon from "@iso/assets/images/overview/marcket_Cap.svg"; import mcapRankIcon from "@iso/assets/images/overview/mcap_rank.svg"; @@ -318,7 +320,18 @@ const Icons = ({ address, ip_address, addToFav, whichHeart }) => { ); }; -const GlobalData = ({ globalData, animateBlockCount, state }) => { +const GlobalData = ({ + globalData, + animateBlockCount, + state, + chartData, + handleClickTotalBond, + chartDataConfig, + totalBondOptions, + handlePopoverVisibility, + handleMaxEffectiveStake, + maxStakeOptions, +}) => { let timeToDisplay = ""; let msgTitle = ""; if (globalData?.churnTry && globalData?.retiring === "false") { @@ -384,18 +397,73 @@ const GlobalData = ({ globalData, animateBlockCount, state }) => { -
    - # -
    -
    MAX EFFECTIVE BOND
    -
    - ᚱ - {parseInt( - globalData.maxEffectiveStake / 100000000 - ).toLocaleString()} + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title="Max Effective Stake Over Time" + trigger="click" + overlayClassName="my-custom-popover" + onVisibleChange={(visible) => handlePopoverVisibility(visible)} + > +
    + # +
    +
    MAX EFFECTIVE BOND
    +
    + ᚱ + {parseInt( + globalData.maxEffectiveStake / 100000000 + ).toLocaleString()} +
    -
    + + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title="Total Bond Over Time" + trigger="click" + overlayClassName="my-custom-popover" + onVisibleChange={(visible) => handlePopoverVisibility(visible)} + > +
    + # +
    +
    + TOTAL BOND OVER TIME +
    +
    CLICK HERE
    +
    +
    +
    ); }; @@ -577,6 +645,9 @@ const NodeTable = ({ bondOptions, rewardsOptions, slashesOptions, + maxPositionOptions, + maxPositionChartDataConfig, + handleNodePosition, visibleColumns = { ...defaulColumns }, sortBy = "", sortDirection = "", @@ -655,7 +726,7 @@ const NodeTable = ({ />
    -
    +
    + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Max Position Over Time for `} + trigger="click" + overlayClassName="my-custom-popover" + onVisibleChange={(visible) => + handlePopoverVisibility(visible) + } + > + + handleNodePosition(item.node_address)} + /> + +
    + {item.location} @@ -1677,11 +1774,15 @@ export default class extends Component { nodesFilter: {}, loading: true, sortByChain: null, + minX: null, + maxX: null, }; this.clickSortHeader = this.clickSortHeader.bind(this); this.handleClickRewards = this.handleClickRewards.bind(this); this.handleClickSlashes = this.handleClickSlashes.bind(this); this.handleClickBond = this.handleClickBond.bind(this); + this.handleClickTotalBond = this.handleClickTotalBond.bind(this); + this.handleNodePosition = this.handleNodePosition.bind(this); } handlePopoverVisibility = (visible) => { @@ -2035,6 +2136,38 @@ We use string sort function if value is one of the arrays else do second sort nu return this.state.myFavNodes.includes(address) ? heartFull : heartBlank; } + handleNodePosition = async (node_address) => { + this.setState({ isPopoverOpen: true }); + const url = `https://api.liquify.com/thor/api/grabPosition=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const maxData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y.max), + })); + + const positionData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y.position), + })); + + const allXValues = [...maxData, ...positionData].map( + (dataPoint) => dataPoint.x + ); + const minX = Math.min(...allXValues); + const maxX = Math.max(...allXValues); + + this.setState({ maxData, positionData, minX, maxX }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + handleClickSlashes = async (node_address) => { this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`; @@ -2055,6 +2188,48 @@ We use string sort function if value is one of the arrays else do second sort nu } }; + handleMaxEffectiveStake = async () => { + this.setState({ isPopoverOpen: true }); + const url = `https://api.liquify.com/thor/api/maxEffectiveStake`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Math.round(Number(y) / 100000000), + })); + + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + + handleClickTotalBond = async () => { + this.setState({ isPopoverOpen: true }); + const url = `https://api.liquify.com/thor/api/totalBond`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Math.round(Number(y) / 100000000), + })); + + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + handleClickRewards = async (node_address) => { this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`; @@ -2152,6 +2327,135 @@ We use string sort function if value is one of the arrays else do second sort nu } : {}; + const maxPositionChartDataConfig = + this.state.maxData && this.state.positionData + ? { + datasets: [ + { + label: "Max", + data: this.state.maxData, + backgroundColor: "blue", + pointRadius: 5, + }, + { + label: "Position", + data: this.state.positionData, + backgroundColor: "orange", + pointRadius: 5, + }, + ], + } + : {}; + + const maxStakeOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Block Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: Math.min(...this.state.chartData.map((data) => data.x)), + max: Math.max(...this.state.chartData.map((data) => data.x)), + stepSize: 20000, + callback: function (value) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Max Effective Stake (ᚱ)", + }, + }, + ], + }, + } + : {}; + + const totalBondOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Block Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: Math.min(...this.state.chartData.map((data) => data.x)), + max: Math.max(...this.state.chartData.map((data) => data.x)), + stepSize: 20000, + callback: function (value) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Total Bond Amount (ᚱ)", + }, + }, + ], + }, + } + : {}; + + const maxPositionOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Block Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: this.state.minX, + max: this.state.maxX, + stepSize: 20000, + callback: function (value) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Position", + }, + ticks: { + min: 0, + max: 100, + }, + }, + ], + }, + } + : {}; + const slashesOptions = this.state.chartData ? { scales: { @@ -2334,6 +2638,12 @@ We use string sort function if value is one of the arrays else do second sort nu state={this.state} globalData={this.state.globalData} animateBlockCount={this.state.animateBlockCount} + handleClickTotalBond={this.handleClickTotalBond} + chartDataConfig={chartDataConfig} + totalBondOptions={totalBondOptions} + maxStakeOptions={maxStakeOptions} + handlePopoverVisibility={this.handlePopoverVisibility} + handleMaxEffectiveStake={this.handleMaxEffectiveStake} /> @@ -2377,6 +2687,9 @@ We use string sort function if value is one of the arrays else do second sort nu rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} handlePopoverVisibility={this.handlePopoverVisibility} + handleNodePosition={this.handleNodePosition} + maxPositionChartDataConfig={maxPositionChartDataConfig} + maxPositionOptions={maxPositionOptions} /> )} {activeNodes.length === 0 && ( @@ -2432,6 +2745,9 @@ We use string sort function if value is one of the arrays else do second sort nu rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} handlePopoverVisibility={this.handlePopoverVisibility} + handleNodePosition={this.handleNodePosition} + maxPositionChartDataConfig={maxPositionChartDataConfig} + maxPositionOptions={maxPositionOptions} /> )} {standByNodes.length === 0 && ( @@ -2486,6 +2802,9 @@ We use string sort function if value is one of the arrays else do second sort nu rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} handlePopoverVisibility={this.handlePopoverVisibility} + handleNodePosition={this.handleNodePosition} + maxPositionChartDataConfig={maxPositionChartDataConfig} + maxPositionOptions={maxPositionOptions} /> )} {whitelistedNodes.length === 0 && ( diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 6ee5fc1..29d23ef 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -8,6 +8,7 @@ import { Layout, Button, Input, Breadcrumb, Select } from "antd"; import { Line } from "react-chartjs-2"; import CustomLineChart from "./CustomLineChart"; import "./styles.css"; +import CustomScatterChart from "./CustomScatterChart"; import { Link } from "react-router-dom"; import { PUBLIC_ROUTE } from "../../route.constants"; import { @@ -15,6 +16,7 @@ import { LeftOutlined, RightOutlined, HistoryOutlined, + DotChartOutlined, } from "@ant-design/icons"; import heartBlank from "@iso/assets/images/heart-blank.png"; @@ -33,8 +35,8 @@ import imageChoopa from "@iso/assets/images/choopa.png"; import imageChartercoms from "@iso/assets/images/chartercoms.png"; import imageATandT from "@iso/assets/images/atandt.png"; import imageZenlayer from "@iso/assets/images/zenlayer.png"; -import imageAljeel from "@iso/assets/images/Aljeel.png" -import imageHostinger from "@iso/assets/images/Hostinger.png" +import imageAljeel from "@iso/assets/images/Aljeel.png"; +import imageHostinger from "@iso/assets/images/Hostinger.png"; import binance from "@iso/assets/images/binance.png"; import eth from "@iso/assets/images/eth.png"; @@ -47,6 +49,7 @@ import thornode from "@iso/assets/images/thornode.svg"; import avax from "@iso/assets/images/avax.png"; import blockIcon from "@iso/assets/images/overview/block_icon.svg"; +import chartLineIcon from "@iso/assets/images/overview/chartLineIcon.svg"; import highTradingIcon from "@iso/assets/images/overview/24high_trading.svg"; import lowTradingIcon from "@iso/assets/images/overview/24low_trading.svg"; import bondIcon from "@iso/assets/images/overview/Bond_icon.svg"; @@ -304,7 +307,17 @@ const Icons = ({ address, ip_address, addToFav, whichHeart }) => { ); }; -const GlobalData = ({ globalData, animateBlockCount, state }) => { +const GlobalData = ({ + globalData, + animateBlockCount, + state, + handleClickTotalBond, + chartDataConfig, + totalBondOptions, + handlePopoverVisibility, + handleMaxEffectiveStake, + maxStakeOptions, +}) => { let timeToDisplay = ""; let msgTitle = ""; if (globalData?.churnTry && globalData?.retiring === "false") { @@ -370,18 +383,73 @@ const GlobalData = ({ globalData, animateBlockCount, state }) => { -
    - # -
    -
    MAX EFFECTIVE BOND
    -
    - ᚱ - {parseInt( - globalData.maxEffectiveStake / 100000000 - ).toLocaleString()} + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title="Max Effective Stake Over Time" + trigger="click" + overlayClassName="my-custom-popover" + onVisibleChange={(visible) => handlePopoverVisibility(visible)} + > +
    + # +
    +
    MAX EFFECTIVE BOND
    +
    + ᚱ + {parseInt( + globalData.maxEffectiveStake / 100000000 + ).toLocaleString()} +
    -
    + + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title="Total Bond Over Time" + trigger="click" + overlayClassName="my-custom-popover" + onVisibleChange={(visible) => handlePopoverVisibility(visible)} + > +
    + # +
    +
    + TOTAL BOND OVER TIME +
    +
    CLICK HERE
    +
    +
    +
    ); }; @@ -563,6 +631,9 @@ const NodeTable = ({ bondOptions, rewardsOptions, slashesOptions, + maxPositionOptions, + maxPositionChartDataConfig, + handleNodePosition, visibleColumns = { ...defaulColumns }, sortBy = "", sortDirection = "", @@ -641,7 +712,7 @@ const NodeTable = ({ />
    -
    +
    + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Max Position Over Time for `} + trigger="click" + overlayClassName="my-custom-popover" + onVisibleChange={(visible) => + handlePopoverVisibility(visible) + } + > + + handleNodePosition(item.node_address)} + /> + +
    { @@ -1730,6 +1831,38 @@ We use string sort function if value is one of the arrays else do second sort nu return this.state.myFavNodes.includes(address) ? heartFull : heartBlank; } + handleNodePosition = async (node_address) => { + this.setState({ isPopoverOpen: true }); + const url = `https://api.liquify.com/thor/api/grabPosition=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const maxData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y.max), + })); + + const positionData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y.position), + })); + + const allXValues = [...maxData, ...positionData].map( + (dataPoint) => dataPoint.x + ); + const minX = Math.min(...allXValues); + const maxX = Math.max(...allXValues); + + this.setState({ maxData, positionData, minX, maxX }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + handleClickSlashes = async (node_address) => { this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`; @@ -1750,6 +1883,48 @@ We use string sort function if value is one of the arrays else do second sort nu } }; + handleMaxEffectiveStake = async () => { + this.setState({ isPopoverOpen: true }); + const url = `https://api.liquify.com/thor/api/maxEffectiveStake`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Math.round(Number(y) / 100000000), + })); + + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + + handleClickTotalBond = async () => { + this.setState({ isPopoverOpen: true }); + const url = `https://api.liquify.com/thor/api/totalBond`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Math.round(Number(y) / 100000000), + })); + + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + handleClickRewards = async (node_address) => { this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`; @@ -1831,6 +2006,135 @@ We use string sort function if value is one of the arrays else do second sort nu } : {}; + const maxPositionChartDataConfig = + this.state.maxData && this.state.positionData + ? { + datasets: [ + { + label: "Max", + data: this.state.maxData, + backgroundColor: "blue", + pointRadius: 5, + }, + { + label: "Position", + data: this.state.positionData, + backgroundColor: "orange", + pointRadius: 5, + }, + ], + } + : {}; + + const maxStakeOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Block Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: Math.min(...this.state.chartData.map((data) => data.x)), + max: Math.max(...this.state.chartData.map((data) => data.x)), + stepSize: 20000, + callback: function (value) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Max Effective Stake (ᚱ)", + }, + }, + ], + }, + } + : {}; + + const totalBondOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Block Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: Math.min(...this.state.chartData.map((data) => data.x)), + max: Math.max(...this.state.chartData.map((data) => data.x)), + stepSize: 20000, + callback: function (value) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Total Bond Amount (ᚱ)", + }, + }, + ], + }, + } + : {}; + + const maxPositionOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Block Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: this.state.minX, + max: this.state.maxX, + stepSize: 20000, + callback: function (value) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Position", + }, + ticks: { + min: 0, + max: 100, + }, + }, + ], + }, + } + : {}; + const slashesOptions = this.state.chartData ? { scales: { @@ -1995,6 +2299,12 @@ We use string sort function if value is one of the arrays else do second sort nu state={this.state} globalData={this.state.globalData} animateBlockCount={this.state.animateBlockCount} + handleClickTotalBond={this.handleClickTotalBond} + chartDataConfig={chartDataConfig} + totalBondOptions={totalBondOptions} + maxStakeOptions={maxStakeOptions} + handlePopoverVisibility={this.handlePopoverVisibility} + handleMaxEffectiveStake={this.handleMaxEffectiveStake} /> @@ -2035,6 +2345,9 @@ We use string sort function if value is one of the arrays else do second sort nu rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} handlePopoverVisibility={this.handlePopoverVisibility} + handleNodePosition={this.handleNodePosition} + maxPositionChartDataConfig={maxPositionChartDataConfig} + maxPositionOptions={maxPositionOptions} /> )} {whitelistedNodes.length === 0 && ( diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 5e0f514..00886d4 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -6,12 +6,14 @@ import { ModalContent } from "../Feedback/Modal/Modal.styles"; import { Layout, Button, Input, Breadcrumb, Select } from "antd"; import { Line } from "react-chartjs-2"; import CustomLineChart from "./CustomLineChart"; +import CustomScatterChart from "./CustomScatterChart"; import "./styles.css"; import { SearchOutlined, LeftOutlined, RightOutlined, HistoryOutlined, + DotChartOutlined, } from "@ant-design/icons"; import heartBlank from "@iso/assets/images/heart-blank.png"; import heartFull from "@iso/assets/images/heart-full.png"; @@ -28,8 +30,8 @@ import imageChoopa from "@iso/assets/images/choopa.png"; import imageChartercoms from "@iso/assets/images/chartercoms.png"; import imageATandT from "@iso/assets/images/atandt.png"; import imageZenlayer from "@iso/assets/images/zenlayer.png"; -import imageAljeel from "@iso/assets/images/Aljeel.png" -import imageHostinger from "@iso/assets/images/Hostinger.png" +import imageAljeel from "@iso/assets/images/Aljeel.png"; +import imageHostinger from "@iso/assets/images/Hostinger.png"; import binance from "@iso/assets/images/binance.png"; import eth from "@iso/assets/images/eth.png"; @@ -56,6 +58,7 @@ import twitterIcon from "@iso/assets/images/overview/twitter_link_icon.svg"; import liquifyLogo from "@iso/assets/images/overview/liquify_logo.svg"; import threeDotsIcon from "@iso/assets/images/overview/dots_three_circle.svg"; import powerIcon from "@iso/assets/images/overview/power.svg"; +import chartLineIcon from "@iso/assets/images/overview/chartLineIcon.svg"; import activeIcon from "@iso/assets/images/overview/active_icon.svg"; import VisibleColumn from "@iso/components/VisibleColumn/VisibleColumn"; import arrowDownIcon from "@iso/assets/images/overview/arrow-down.svg"; @@ -296,7 +299,18 @@ const Icons = ({ address, ip_address, addToFav, whichHeart }) => { ); }; -const GlobalData = ({ globalData, animateBlockCount, state }) => { +const GlobalData = ({ + globalData, + animateBlockCount, + state, + chartData, + handleClickTotalBond, + chartDataConfig, + totalBondOptions, + handlePopoverVisibility, + handleMaxEffectiveStake, + maxStakeOptions, +}) => { let timeToDisplay = ""; let msgTitle = ""; if (globalData?.churnTry && globalData?.retiring === "false") { @@ -362,18 +376,73 @@ const GlobalData = ({ globalData, animateBlockCount, state }) => { -
    - # -
    -
    MAX EFFECTIVE BOND
    -
    - ᚱ - {parseInt( - globalData.maxEffectiveStake / 100000000 - ).toLocaleString()} + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title="Max Effective Stake Over Time" + trigger="click" + overlayClassName="my-custom-popover" + onVisibleChange={(visible) => handlePopoverVisibility(visible)} + > +
    + # +
    +
    MAX EFFECTIVE BOND
    +
    + ᚱ + {parseInt( + globalData.maxEffectiveStake / 100000000 + ).toLocaleString()} +
    -
    + + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title="Total Bond Over Time" + trigger="click" + overlayClassName="my-custom-popover" + onVisibleChange={(visible) => handlePopoverVisibility(visible)} + > +
    + # +
    +
    + TOTAL BOND OVER TIME +
    +
    CLICK HERE
    +
    +
    +
    ); }; @@ -555,6 +624,9 @@ const NodeTable = ({ bondOptions, rewardsOptions, slashesOptions, + maxPositionOptions, + maxPositionChartDataConfig, + handleNodePosition, visibleColumns = { ...defaulColumns }, sortBy = "", sortDirection = "", @@ -633,7 +705,7 @@ const NodeTable = ({ />
    -
    +
    )} @@ -1665,6 +1700,11 @@ const NodeTable = ({ obchains={item.obchains} maxChainHeights={maxChainHeights} /> + )} @@ -1727,6 +1767,7 @@ const defaulColumns = { DOGE: true, GAIA: true, AVAX: true, + BSC: true, }; export default class extends Component { constructor(props) { @@ -2094,6 +2135,7 @@ We use string sort function if value is one of the arrays else do second sort nu "DOGE", "GAIA", "AVAX", + "BSC", ].includes(item); const direction = this.state.sortBy !== item diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index d605020..e89edc7 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -54,6 +54,7 @@ import dogecoin from "@iso/assets/images/dogecoin.png"; import gaia from "@iso/assets/images/atom.png"; import thornode from "@iso/assets/images/thornode.svg"; import avax from "@iso/assets/images/avax.png"; +import bsc from '@iso/assets/images/bsc.png'; import blockIcon from "@iso/assets/images/overview/block_icon.svg"; import highTradingIcon from "@iso/assets/images/overview/24high_trading.svg"; @@ -1341,6 +1342,40 @@ const NodeTable = ({ /> + + )} @@ -1691,6 +1726,11 @@ const NodeTable = ({ obchains={item.obchains} maxChainHeights={maxChainHeights} /> + )} @@ -1753,6 +1793,7 @@ const defaulColumns = { DOGE: true, GAIA: true, AVAX: true, + BSC: true, }; export default class extends Component { constructor(props) { @@ -2114,6 +2155,7 @@ We use string sort function if value is one of the arrays else do second sort nu "DOGE", "GAIA", "AVAX", + "BSC", ].includes(item); const direction = this.state.sortBy !== item From e8c0a66f9bfd04b4914cbd26379ceedb764cdc52 Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Mon, 11 Sep 2023 10:09:37 +0100 Subject: [PATCH 57/78] Add node address to title of graph --- src/containers/A_monitor/activepage.js | 4 +++- src/containers/A_monitor/monitorpage.js | 4 +++- src/containers/A_monitor/otherpage.js | 4 +++- src/containers/A_monitor/standbypage.js | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 8ab5efd..8213b9e 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -1418,7 +1418,9 @@ const NodeTable = ({
    No data available
    ) } - title={`Max Position Over Time for `} + title={`Performance Over Time for ${item.node_address.slice( + -4 + )}`} trigger="click" overlayClassName="my-custom-popover" onVisibleChange={(visible) => diff --git a/src/containers/A_monitor/monitorpage.js b/src/containers/A_monitor/monitorpage.js index e89edc7..8cb8ca2 100644 --- a/src/containers/A_monitor/monitorpage.js +++ b/src/containers/A_monitor/monitorpage.js @@ -1435,7 +1435,9 @@ const NodeTable = ({
    No data available
    ) } - title={`Max Position Over Time for `} + title={`Performance Over Time for ${item.node_address.slice( + -4 + )}`} trigger="click" overlayClassName="my-custom-popover" onVisibleChange={(visible) => diff --git a/src/containers/A_monitor/otherpage.js b/src/containers/A_monitor/otherpage.js index 29d23ef..c47fcee 100644 --- a/src/containers/A_monitor/otherpage.js +++ b/src/containers/A_monitor/otherpage.js @@ -1139,7 +1139,9 @@ const NodeTable = ({
    No data available
    ) } - title={`Max Position Over Time for `} + title={`Performance Over Time for ${item.node_address.slice( + -4 + )}`} trigger="click" overlayClassName="my-custom-popover" onVisibleChange={(visible) => diff --git a/src/containers/A_monitor/standbypage.js b/src/containers/A_monitor/standbypage.js index 00886d4..101b5ac 100644 --- a/src/containers/A_monitor/standbypage.js +++ b/src/containers/A_monitor/standbypage.js @@ -1132,7 +1132,9 @@ const NodeTable = ({
    No data available
    ) } - title={`Max Position Over Time for `} + title={`Performance Over Time for ${item.node_address.slice( + -4 + )}`} trigger="click" overlayClassName="my-custom-popover" onVisibleChange={(visible) => From f2d186834366e900f90e045a90e54efb968c44a2 Mon Sep 17 00:00:00 2001 From: dannydango Date: Fri, 15 Sep 2023 15:46:55 +0100 Subject: [PATCH 58/78] Pre darkmode --- .gitignore | 1 + build/asset-manifest.json | 137 +- build/index.html | 2 +- ...nifest.c40034b046dff7e6b76d70b92926fef5.js | 150 - build/service-worker.js | 39 - build/static/css/116.9cff874d.chunk.css | 2 + build/static/css/116.9cff874d.chunk.css.map | 1 + build/static/css/164.9cff874d.chunk.css | 2 + build/static/css/164.9cff874d.chunk.css.map | 1 + build/static/css/167.b63e9d2b.chunk.css | 2 + build/static/css/167.b63e9d2b.chunk.css.map | 1 + build/static/css/2.84b081bd.chunk.css | 2 - build/static/css/2.84b081bd.chunk.css.map | 1 - build/static/css/3.7f9fe742.chunk.css | 2 - build/static/css/3.7f9fe742.chunk.css.map | 1 - build/static/css/351.9cff874d.chunk.css | 2 + build/static/css/351.9cff874d.chunk.css.map | 1 + build/static/css/4.859dae4f.chunk.css | 2 - build/static/css/4.859dae4f.chunk.css.map | 1 - build/static/css/627.9cff874d.chunk.css | 2 + build/static/css/627.9cff874d.chunk.css.map | 1 + build/static/css/main.43eaeb58.css | 2 + build/static/css/main.43eaeb58.css.map | 1 + build/static/js/116.ae34d3de.chunk.js | 2 + build/static/js/116.ae34d3de.chunk.js.map | 1 + build/static/js/164.80a7ea90.chunk.js | 2 + build/static/js/164.80a7ea90.chunk.js.map | 1 + build/static/js/167.26dd9587.chunk.js | 3 + .../js/167.26dd9587.chunk.js.LICENSE.txt | 6 + build/static/js/167.26dd9587.chunk.js.map | 1 + build/static/js/2.cb4d8c0c.chunk.js | 3 - .../static/js/2.cb4d8c0c.chunk.js.LICENSE.txt | 61 - build/static/js/2.cb4d8c0c.chunk.js.map | 1 - build/static/js/3.bf76d2fc.chunk.js | 3 - .../static/js/3.bf76d2fc.chunk.js.LICENSE.txt | 206 - build/static/js/3.bf76d2fc.chunk.js.map | 1 - build/static/js/351.bb6c2fdd.chunk.js | 2 + build/static/js/351.bb6c2fdd.chunk.js.map | 1 + build/static/js/4.cb7601ad.chunk.js | 3 - .../static/js/4.cb7601ad.chunk.js.LICENSE.txt | 1 - build/static/js/4.cb7601ad.chunk.js.map | 1 - build/static/js/627.70e22e1d.chunk.js | 2 + build/static/js/627.70e22e1d.chunk.js.map | 1 + build/static/js/752.dca39cef.chunk.js | 2 + build/static/js/752.dca39cef.chunk.js.map | 1 + build/static/js/main.88ace585.chunk.js | 3 - .../js/main.88ace585.chunk.js.LICENSE.txt | 1 - build/static/js/main.88ace585.chunk.js.map | 1 - build/static/js/main.ec63cd08.js | 3 + build/static/js/main.ec63cd08.js.LICENSE.txt | 263 + build/static/js/main.ec63cd08.js.map | 1 + build/static/js/runtime-main.cd78d362.js | 2 - build/static/js/runtime-main.cd78d362.js.map | 1 - ...812b733.png => 1.833ea723c9afc0758ee7.png} | Bin ...f709cb.png => 10.b55c18f154ea477f3ca0.png} | Bin ...742201.png => 11.3dfbed3272a14db277a2.png} | Bin ...e675418.png => 2.99b8210065200c943b1f.png} | Bin ...ading.4f4fc0ee60b7d1195c8dd6902a2b2ff0.svg | 4 + ...ading.422cfc004eb6965d82a17b408c903208.svg | 4 + ...100e074.png => 3.b24a44f09a6909f2f794.png} | Bin ...d3f7c7c.png => 4.09845ebd9f7f51a18a6d.png} | Bin ...b2fcb95.png => 5.b2c2b59f7565b326afef.png} | Bin ...02c5ab6.png => 6.613b16908df8cfc34bd5.png} | Bin ...52f351b.png => 7.6c76fd3db83e2eadce20.png} | Bin ...a1f3948.png => 8.3463dbe88b283870f049.png} | Bin ...c29f02d.png => 9.54459fdf7dbda48d8f40.png} | Bin .../media/Aljeel.09d1ea1c61aa36dd3c3b.png | Bin 0 -> 19068 bytes ..._icon.d0e3cf0fbc2c32ccb8e1288e02279c19.svg | 8 + ..._icon.e8d384e16a398545ed60e042a130ec5c.svg | 4 + ...-down.b310562ce02fc7aacedce7a4770d31eb.svg | 8 + .../media/atandt.366b6b10ae397f3c19c4.png | Bin 0 -> 23613 bytes .../media/atom.162a104a86d2748cb54a.png | Bin 0 -> 10425 bytes .../media/avax.e1fb45e8e070674b1a54.png | Bin 0 -> 47819 bytes ...d.png => bitcoin.d0a1ce55e106304d4bdf.png} | Bin ...g => bitcoincash.a695439dde56fef4ac40.png} | Bin ..._icon.1622e86d946054ad807161cce32a6b2d.svg | 5 + ...eIcon.2eb78bec0f9cd2c99c614a03ee416015.svg | 14 + .../chartercoms.44021c128aca71ac0120.png | Bin 0 -> 53973 bytes ...hina.d05a649b0fe3d1a2aab9550c24d594ed.svg} | 186 +- .../media/choopa.ca89eb113604d1815bdf.png | Bin 0 -> 52836 bytes ..._icon.9daa45a92721894045574b2be8d8c8a2.svg | 4 + .../media/comcast.5737a67b18914b49f88e.png | Bin 0 -> 28513 bytes .../media/datacamp.df9378e6a7af6149dfbb.png | Bin 0 -> 11089 bytes ....png => dogecoin.be6a587d49c4b58c6790.png} | Bin ...ircle.118f0dde621fb3c167f4037f4070820b.svg | 6 + build/static/media/eth.b203ffd6.png | Bin 15230 -> 0 bytes ...ilter.c70e04e3b187caf451593d5035249cc2.svg | 4 + ...ance.f542aafb7eb53b837c7a9141b5b96463.svg} | 42 +- ..._icon.05024f56086da5f2beab0e1ed379e8e3.svg | 4 + ..._icon.ed92bdb08f033fe980c915287f043270.svg | 1 + .../heart-blank.05f7231e3025e5fa9429.png | Bin 0 -> 18130 bytes build/static/media/heart-blank.8c7b45fc.png | Bin 11551 -> 0 bytes .../media/heart-full.59848f4811a23aa759c3.png | Bin 0 -> 13840 bytes build/static/media/heart-full.95f2338a.png | Bin 8233 -> 0 bytes .../media/hex_map_bg.897b05f8054f0473543b.png | Bin 0 -> 173181 bytes ...taly.9ef80c6c0e6c3ea2dd3069e18f35ada9.svg} | 42 +- .../media/leaseweb.85a99928c91985802c38.png | Bin 0 -> 35191 bytes .../media/liquify_bg.c3b67a9ff864bd54b55d.png | Bin 0 -> 267079 bytes ..._logo.94e326d3de985030480734365e61e576.svg | 10 + .../media/loading.5f5d24fa53abcffd1c4f.png | Bin 0 -> 22561 bytes ...t_Cap.0c4d1eeb6d5442eb063742a76f8eb85d.svg | 9 + ..._rank.a4836cd70201f20096b19a644dfc9e1a.svg | 6 + ...power.11173c1e7918bd1f252144efa0b304bf.svg | 4 + ...pg => profile-bg.aa316880f5078e66878b.jpg} | Bin ..._usdt.d52899ec3d95167168f8bcf4fc08aac7.svg | 11 + ...pain.6ae9e2f536f0c760f14d4d2e5c5865c1.svg} | 44 +- ...rnode.a9150eef2211fb296139cce84eb9c2ec.svg | 9 + ..._icon.b6e9d2c0e456454ebb03f8adb3ebcc42.svg | 4 + ...upply.de6c2ab6c5906cf6040fbe52eadbd142.svg | 10 + ..._icon.3159069b2c2603bbc7ff3a35061c7d55.svg | 4 + ...> uk.849699bef1cce0bd414a980c7575002a.svg} | 210 +- ...5a5.png => user1.d4dc5814e8f1cb47f432.png} | Bin ..._icon.7dd418b127801d5868d4498816d06ddb.svg | 1 + ...n-top.f2e05d5c980badea8ae37da137531038.svg | 6 + .../media/zenlayer.265bfe0ed837e2268fb4.png | Bin 0 -> 10796 bytes config-overrides.js | 30 +- lambda functions/thormonitor/package.json | 2 +- .../thormonitor_collect_data2/package.json | 2 +- .../package.json | 2 +- .../thormonitor_update_ips/package.json | 2 +- .../thornode_collect_data_global/package.json | 2 +- package-lock.json | 42900 ++++++++-------- package.json | 288 +- src/UI/Favorite/Favorite.style.js | 12 +- src/assets/images/bsc.png | Bin 0 -> 2622 bytes src/assets/images/overview/jail_icon.svg | 21 + src/commonFunctions.js | 346 +- src/components/ColorChoser.js | 8 +- src/config/translation/entries/ar_SA.js | 6 +- src/config/translation/entries/en-US.js | 6 +- src/config/translation/entries/es_ES.js | 6 +- src/config/translation/entries/fr_FR.js | 6 +- src/config/translation/entries/it_IT.js | 6 +- src/containers/A_monitor/CustomLineChart.js | 6 +- .../A_monitor/CustomScatterChart.js | 6 +- src/containers/A_monitor/activepage.js | 401 +- src/containers/A_monitor/monitorpage.js | 404 +- src/containers/A_monitor/otherpage.js | 358 +- src/containers/A_monitor/standbypage.js | 359 +- src/containers/A_monitor/styles.css | 31 + src/containers/Forms/Tab/Tab.js | 36 +- src/containers/Topbar/TopbarAddToCart.js | 47 +- src/containers/Topbar/TopbarMail.js | 50 +- src/containers/Topbar/TopbarMessage.js | 46 +- src/containers/Topbar/TopbarNotification.js | 34 +- src/containers/Topbar/TopbarUser.js | 16 +- src/containers/UIElements/Popover/Popover.js | 20 +- src/library/firebase/firebase.js | 21 +- src/redux/chat/sagas.js | 348 +- src/redux/root-saga.js | 36 +- 150 files changed, 25299 insertions(+), 22165 deletions(-) create mode 100644 .gitignore delete mode 100644 build/precache-manifest.c40034b046dff7e6b76d70b92926fef5.js delete mode 100644 build/service-worker.js create mode 100644 build/static/css/116.9cff874d.chunk.css create mode 100644 build/static/css/116.9cff874d.chunk.css.map create mode 100644 build/static/css/164.9cff874d.chunk.css create mode 100644 build/static/css/164.9cff874d.chunk.css.map create mode 100644 build/static/css/167.b63e9d2b.chunk.css create mode 100644 build/static/css/167.b63e9d2b.chunk.css.map delete mode 100644 build/static/css/2.84b081bd.chunk.css delete mode 100644 build/static/css/2.84b081bd.chunk.css.map delete mode 100644 build/static/css/3.7f9fe742.chunk.css delete mode 100644 build/static/css/3.7f9fe742.chunk.css.map create mode 100644 build/static/css/351.9cff874d.chunk.css create mode 100644 build/static/css/351.9cff874d.chunk.css.map delete mode 100644 build/static/css/4.859dae4f.chunk.css delete mode 100644 build/static/css/4.859dae4f.chunk.css.map create mode 100644 build/static/css/627.9cff874d.chunk.css create mode 100644 build/static/css/627.9cff874d.chunk.css.map create mode 100644 build/static/css/main.43eaeb58.css create mode 100644 build/static/css/main.43eaeb58.css.map create mode 100644 build/static/js/116.ae34d3de.chunk.js create mode 100644 build/static/js/116.ae34d3de.chunk.js.map create mode 100644 build/static/js/164.80a7ea90.chunk.js create mode 100644 build/static/js/164.80a7ea90.chunk.js.map create mode 100644 build/static/js/167.26dd9587.chunk.js create mode 100644 build/static/js/167.26dd9587.chunk.js.LICENSE.txt create mode 100644 build/static/js/167.26dd9587.chunk.js.map delete mode 100644 build/static/js/2.cb4d8c0c.chunk.js delete mode 100644 build/static/js/2.cb4d8c0c.chunk.js.LICENSE.txt delete mode 100644 build/static/js/2.cb4d8c0c.chunk.js.map delete mode 100644 build/static/js/3.bf76d2fc.chunk.js delete mode 100644 build/static/js/3.bf76d2fc.chunk.js.LICENSE.txt delete mode 100644 build/static/js/3.bf76d2fc.chunk.js.map create mode 100644 build/static/js/351.bb6c2fdd.chunk.js create mode 100644 build/static/js/351.bb6c2fdd.chunk.js.map delete mode 100644 build/static/js/4.cb7601ad.chunk.js delete mode 100644 build/static/js/4.cb7601ad.chunk.js.LICENSE.txt delete mode 100644 build/static/js/4.cb7601ad.chunk.js.map create mode 100644 build/static/js/627.70e22e1d.chunk.js create mode 100644 build/static/js/627.70e22e1d.chunk.js.map create mode 100644 build/static/js/752.dca39cef.chunk.js create mode 100644 build/static/js/752.dca39cef.chunk.js.map delete mode 100644 build/static/js/main.88ace585.chunk.js delete mode 100644 build/static/js/main.88ace585.chunk.js.LICENSE.txt delete mode 100644 build/static/js/main.88ace585.chunk.js.map create mode 100644 build/static/js/main.ec63cd08.js create mode 100644 build/static/js/main.ec63cd08.js.LICENSE.txt create mode 100644 build/static/js/main.ec63cd08.js.map delete mode 100644 build/static/js/runtime-main.cd78d362.js delete mode 100644 build/static/js/runtime-main.cd78d362.js.map rename build/static/media/{1.f812b733.png => 1.833ea723c9afc0758ee7.png} (100%) rename build/static/media/{10.93f709cb.png => 10.b55c18f154ea477f3ca0.png} (100%) rename build/static/media/{11.62742201.png => 11.3dfbed3272a14db277a2.png} (100%) rename build/static/media/{2.9e675418.png => 2.99b8210065200c943b1f.png} (100%) create mode 100644 build/static/media/24high_trading.4f4fc0ee60b7d1195c8dd6902a2b2ff0.svg create mode 100644 build/static/media/24low_trading.422cfc004eb6965d82a17b408c903208.svg rename build/static/media/{3.e100e074.png => 3.b24a44f09a6909f2f794.png} (100%) rename build/static/media/{4.bd3f7c7c.png => 4.09845ebd9f7f51a18a6d.png} (100%) rename build/static/media/{5.ab2fcb95.png => 5.b2c2b59f7565b326afef.png} (100%) rename build/static/media/{6.e02c5ab6.png => 6.613b16908df8cfc34bd5.png} (100%) rename build/static/media/{7.352f351b.png => 7.6c76fd3db83e2eadce20.png} (100%) rename build/static/media/{8.ea1f3948.png => 8.3463dbe88b283870f049.png} (100%) rename build/static/media/{9.ac29f02d.png => 9.54459fdf7dbda48d8f40.png} (100%) create mode 100644 build/static/media/Aljeel.09d1ea1c61aa36dd3c3b.png create mode 100644 build/static/media/Bond_icon.d0e3cf0fbc2c32ccb8e1288e02279c19.svg create mode 100644 build/static/media/active_icon.e8d384e16a398545ed60e042a130ec5c.svg create mode 100644 build/static/media/arrow-down.b310562ce02fc7aacedce7a4770d31eb.svg create mode 100644 build/static/media/atandt.366b6b10ae397f3c19c4.png create mode 100644 build/static/media/atom.162a104a86d2748cb54a.png create mode 100644 build/static/media/avax.e1fb45e8e070674b1a54.png rename build/static/media/{bitcoin.a552edcd.png => bitcoin.d0a1ce55e106304d4bdf.png} (100%) rename build/static/media/{bitcoincash.16c5b53b.png => bitcoincash.a695439dde56fef4ac40.png} (100%) create mode 100644 build/static/media/block_icon.1622e86d946054ad807161cce32a6b2d.svg create mode 100644 build/static/media/chartLineIcon.2eb78bec0f9cd2c99c614a03ee416015.svg create mode 100644 build/static/media/chartercoms.44021c128aca71ac0120.png rename build/static/media/{china.4e4d59b7.svg => china.d05a649b0fe3d1a2aab9550c24d594ed.svg} (98%) create mode 100644 build/static/media/choopa.ca89eb113604d1815bdf.png create mode 100644 build/static/media/churns_icon.9daa45a92721894045574b2be8d8c8a2.svg create mode 100644 build/static/media/comcast.5737a67b18914b49f88e.png create mode 100644 build/static/media/datacamp.df9378e6a7af6149dfbb.png rename build/static/media/{dogecoin.f9b13f6b.png => dogecoin.be6a587d49c4b58c6790.png} (100%) create mode 100644 build/static/media/dots_three_circle.118f0dde621fb3c167f4037f4070820b.svg delete mode 100644 build/static/media/eth.b203ffd6.png create mode 100644 build/static/media/filter.c70e04e3b187caf451593d5035249cc2.svg rename build/static/media/{france.bcd389de.svg => france.f542aafb7eb53b837c7a9141b5b96463.svg} (98%) create mode 100644 build/static/media/github_link_icon.05024f56086da5f2beab0e1ed379e8e3.svg create mode 100644 build/static/media/globe_icon.ed92bdb08f033fe980c915287f043270.svg create mode 100644 build/static/media/heart-blank.05f7231e3025e5fa9429.png delete mode 100644 build/static/media/heart-blank.8c7b45fc.png create mode 100644 build/static/media/heart-full.59848f4811a23aa759c3.png delete mode 100644 build/static/media/heart-full.95f2338a.png create mode 100644 build/static/media/hex_map_bg.897b05f8054f0473543b.png rename build/static/media/{italy.604345b4.svg => italy.9ef80c6c0e6c3ea2dd3069e18f35ada9.svg} (98%) create mode 100644 build/static/media/leaseweb.85a99928c91985802c38.png create mode 100644 build/static/media/liquify_bg.c3b67a9ff864bd54b55d.png create mode 100644 build/static/media/liquify_logo.94e326d3de985030480734365e61e576.svg create mode 100644 build/static/media/loading.5f5d24fa53abcffd1c4f.png create mode 100644 build/static/media/marcket_Cap.0c4d1eeb6d5442eb063742a76f8eb85d.svg create mode 100644 build/static/media/mcap_rank.a4836cd70201f20096b19a644dfc9e1a.svg create mode 100644 build/static/media/power.11173c1e7918bd1f252144efa0b304bf.svg rename build/static/media/{profile-bg.f57b6453.jpg => profile-bg.aa316880f5078e66878b.jpg} (100%) create mode 100644 build/static/media/rune_usdt.d52899ec3d95167168f8bcf4fc08aac7.svg rename build/static/media/{spain.6a9dc11f.svg => spain.6ae9e2f536f0c760f14d4d2e5c5865c1.svg} (98%) create mode 100644 build/static/media/thornode.a9150eef2211fb296139cce84eb9c2ec.svg create mode 100644 build/static/media/time_icon.b6e9d2c0e456454ebb03f8adb3ebcc42.svg create mode 100644 build/static/media/total_supply.de6c2ab6c5906cf6040fbe52eadbd142.svg create mode 100644 build/static/media/twitter_link_icon.3159069b2c2603bbc7ff3a35061c7d55.svg rename build/static/media/{uk.bc48afcc.svg => uk.849699bef1cce0bd414a980c7575002a.svg} (99%) rename build/static/media/{user1.d4c245a5.png => user1.d4dc5814e8f1cb47f432.png} (100%) create mode 100644 build/static/media/version_icon.7dd418b127801d5868d4498816d06ddb.svg create mode 100644 build/static/media/vertical-align-top.f2e05d5c980badea8ae37da137531038.svg create mode 100644 build/static/media/zenlayer.265bfe0ed837e2268fb4.png create mode 100644 src/assets/images/bsc.png create mode 100644 src/assets/images/overview/jail_icon.svg diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/build/asset-manifest.json b/build/asset-manifest.json index 0b9064d..7096b2f 100644 --- a/build/asset-manifest.json +++ b/build/asset-manifest.json @@ -1,57 +1,94 @@ { "files": { - "main.js": "/static/js/main.88ace585.chunk.js", - "main.js.map": "/static/js/main.88ace585.chunk.js.map", - "runtime-main.js": "/static/js/runtime-main.cd78d362.js", - "runtime-main.js.map": "/static/js/runtime-main.cd78d362.js.map", - "static/css/2.84b081bd.chunk.css": "/static/css/2.84b081bd.chunk.css", - "static/js/2.cb4d8c0c.chunk.js": "/static/js/2.cb4d8c0c.chunk.js", - "static/js/2.cb4d8c0c.chunk.js.map": "/static/js/2.cb4d8c0c.chunk.js.map", - "static/css/3.7f9fe742.chunk.css": "/static/css/3.7f9fe742.chunk.css", - "static/js/3.bf76d2fc.chunk.js": "/static/js/3.bf76d2fc.chunk.js", - "static/js/3.bf76d2fc.chunk.js.map": "/static/js/3.bf76d2fc.chunk.js.map", - "static/css/4.859dae4f.chunk.css": "/static/css/4.859dae4f.chunk.css", - "static/js/4.cb7601ad.chunk.js": "/static/js/4.cb7601ad.chunk.js", - "static/js/4.cb7601ad.chunk.js.map": "/static/js/4.cb7601ad.chunk.js.map", + "main.css": "/static/css/main.43eaeb58.css", + "main.js": "/static/js/main.ec63cd08.js", + "static/css/164.9cff874d.chunk.css": "/static/css/164.9cff874d.chunk.css", + "static/js/164.80a7ea90.chunk.js": "/static/js/164.80a7ea90.chunk.js", + "static/css/116.9cff874d.chunk.css": "/static/css/116.9cff874d.chunk.css", + "static/js/116.ae34d3de.chunk.js": "/static/js/116.ae34d3de.chunk.js", + "static/css/627.9cff874d.chunk.css": "/static/css/627.9cff874d.chunk.css", + "static/js/627.70e22e1d.chunk.js": "/static/js/627.70e22e1d.chunk.js", + "static/css/351.9cff874d.chunk.css": "/static/css/351.9cff874d.chunk.css", + "static/js/351.bb6c2fdd.chunk.js": "/static/js/351.bb6c2fdd.chunk.js", + "static/css/167.b63e9d2b.chunk.css": "/static/css/167.b63e9d2b.chunk.css", + "static/js/167.26dd9587.chunk.js": "/static/js/167.26dd9587.chunk.js", + "static/js/752.dca39cef.chunk.js": "/static/js/752.dca39cef.chunk.js", + "static/media/profile-bg.jpg": "/static/media/profile-bg.aa316880f5078e66878b.jpg", + "static/media/liquify_bg.png": "/static/media/liquify_bg.c3b67a9ff864bd54b55d.png", + "static/media/thornode.svg": "/static/media/thornode.a9150eef2211fb296139cce84eb9c2ec.svg", + "static/media/hex_map_bg.png": "/static/media/hex_map_bg.897b05f8054f0473543b.png", + "static/media/10.png": "/static/media/10.b55c18f154ea477f3ca0.png", + "static/media/8.png": "/static/media/8.3463dbe88b283870f049.png", + "static/media/1.png": "/static/media/1.833ea723c9afc0758ee7.png", + "static/media/6.png": "/static/media/6.613b16908df8cfc34bd5.png", + "static/media/4.png": "/static/media/4.09845ebd9f7f51a18a6d.png", + "static/media/2.png": "/static/media/2.99b8210065200c943b1f.png", + "static/media/7.png": "/static/media/7.6c76fd3db83e2eadce20.png", + "static/media/3.png": "/static/media/3.b24a44f09a6909f2f794.png", + "static/media/9.png": "/static/media/9.54459fdf7dbda48d8f40.png", + "static/media/11.png": "/static/media/11.3dfbed3272a14db277a2.png", + "static/media/5.png": "/static/media/5.b2c2b59f7565b326afef.png", + "static/media/rune_usdt.svg": "/static/media/rune_usdt.d52899ec3d95167168f8bcf4fc08aac7.svg", + "static/media/chartercoms.png": "/static/media/chartercoms.44021c128aca71ac0120.png", + "static/media/choopa.png": "/static/media/choopa.ca89eb113604d1815bdf.png", + "static/media/avax.png": "/static/media/avax.e1fb45e8e070674b1a54.png", + "static/media/dogecoin.png": "/static/media/dogecoin.be6a587d49c4b58c6790.png", + "static/media/leaseweb.png": "/static/media/leaseweb.85a99928c91985802c38.png", + "static/media/comcast.png": "/static/media/comcast.5737a67b18914b49f88e.png", + "static/media/atandt.png": "/static/media/atandt.366b6b10ae397f3c19c4.png", + "static/media/loading.png": "/static/media/loading.5f5d24fa53abcffd1c4f.png", + "static/media/Aljeel.png": "/static/media/Aljeel.09d1ea1c61aa36dd3c3b.png", + "static/media/heart-blank.png": "/static/media/heart-blank.05f7231e3025e5fa9429.png", + "static/media/heart-full.png": "/static/media/heart-full.59848f4811a23aa759c3.png", + "static/media/liquify_logo.svg": "/static/media/liquify_logo.94e326d3de985030480734365e61e576.svg", + "static/media/bitcoin.png": "/static/media/bitcoin.d0a1ce55e106304d4bdf.png", + "static/media/bitcoincash.png": "/static/media/bitcoincash.a695439dde56fef4ac40.png", + "static/media/datacamp.png": "/static/media/datacamp.df9378e6a7af6149dfbb.png", + "static/media/zenlayer.png": "/static/media/zenlayer.265bfe0ed837e2268fb4.png", + "static/media/uk.svg": "/static/media/uk.849699bef1cce0bd414a980c7575002a.svg", + "static/media/user1.png": "/static/media/user1.d4dc5814e8f1cb47f432.png", + "static/media/atom.png": "/static/media/atom.162a104a86d2748cb54a.png", + "static/media/china.svg": "/static/media/china.d05a649b0fe3d1a2aab9550c24d594ed.svg", + "static/media/churns_icon.svg": "/static/media/churns_icon.9daa45a92721894045574b2be8d8c8a2.svg", + "static/media/twitter_link_icon.svg": "/static/media/twitter_link_icon.3159069b2c2603bbc7ff3a35061c7d55.svg", + "static/media/globe_icon.svg": "/static/media/globe_icon.ed92bdb08f033fe980c915287f043270.svg", + "static/media/filter.svg": "/static/media/filter.c70e04e3b187caf451593d5035249cc2.svg", + "static/media/spain.svg": "/static/media/spain.6ae9e2f536f0c760f14d4d2e5c5865c1.svg", + "static/media/total_supply.svg": "/static/media/total_supply.de6c2ab6c5906cf6040fbe52eadbd142.svg", + "static/media/github_link_icon.svg": "/static/media/github_link_icon.05024f56086da5f2beab0e1ed379e8e3.svg", + "static/media/france.svg": "/static/media/france.f542aafb7eb53b837c7a9141b5b96463.svg", + "static/media/italy.svg": "/static/media/italy.9ef80c6c0e6c3ea2dd3069e18f35ada9.svg", "index.html": "/index.html", - "precache-manifest.c40034b046dff7e6b76d70b92926fef5.js": "/precache-manifest.c40034b046dff7e6b76d70b92926fef5.js", - "service-worker.js": "/service-worker.js", - "static/css/2.84b081bd.chunk.css.map": "/static/css/2.84b081bd.chunk.css.map", - "static/css/3.7f9fe742.chunk.css.map": "/static/css/3.7f9fe742.chunk.css.map", - "static/css/4.859dae4f.chunk.css.map": "/static/css/4.859dae4f.chunk.css.map", - "static/js/2.cb4d8c0c.chunk.js.LICENSE.txt": "/static/js/2.cb4d8c0c.chunk.js.LICENSE.txt", - "static/js/3.bf76d2fc.chunk.js.LICENSE.txt": "/static/js/3.bf76d2fc.chunk.js.LICENSE.txt", - "static/js/4.cb7601ad.chunk.js.LICENSE.txt": "/static/js/4.cb7601ad.chunk.js.LICENSE.txt", - "static/js/main.88ace585.chunk.js.LICENSE.txt": "/static/js/main.88ace585.chunk.js.LICENSE.txt", - "static/media/1.png": "/static/media/1.f812b733.png", - "static/media/10.png": "/static/media/10.93f709cb.png", - "static/media/11.png": "/static/media/11.62742201.png", - "static/media/2.png": "/static/media/2.9e675418.png", - "static/media/3.png": "/static/media/3.e100e074.png", - "static/media/4.png": "/static/media/4.bd3f7c7c.png", - "static/media/5.png": "/static/media/5.ab2fcb95.png", - "static/media/6.png": "/static/media/6.e02c5ab6.png", - "static/media/7.png": "/static/media/7.352f351b.png", - "static/media/8.png": "/static/media/8.ea1f3948.png", - "static/media/9.png": "/static/media/9.ac29f02d.png", - "static/media/bitcoin.png": "/static/media/bitcoin.a552edcd.png", - "static/media/bitcoincash.png": "/static/media/bitcoincash.16c5b53b.png", - "static/media/china.svg": "/static/media/china.4e4d59b7.svg", - "static/media/dogecoin.png": "/static/media/dogecoin.f9b13f6b.png", - "static/media/eth.png": "/static/media/eth.b203ffd6.png", - "static/media/france.svg": "/static/media/france.bcd389de.svg", - "static/media/heart-blank.png": "/static/media/heart-blank.8c7b45fc.png", - "static/media/heart-full.png": "/static/media/heart-full.95f2338a.png", - "static/media/italy.svg": "/static/media/italy.604345b4.svg", - "static/media/profile-bg.jpg": "/static/media/profile-bg.f57b6453.jpg", - "static/media/spain.svg": "/static/media/spain.6a9dc11f.svg", - "static/media/uk.svg": "/static/media/uk.bc48afcc.svg", - "static/media/user1.png": "/static/media/user1.d4c245a5.png" + "static/media/Bond_icon.svg": "/static/media/Bond_icon.d0e3cf0fbc2c32ccb8e1288e02279c19.svg", + "static/media/vertical-align-top.svg": "/static/media/vertical-align-top.f2e05d5c980badea8ae37da137531038.svg", + "static/media/chartLineIcon.svg": "/static/media/chartLineIcon.2eb78bec0f9cd2c99c614a03ee416015.svg", + "static/media/block_icon.svg": "/static/media/block_icon.1622e86d946054ad807161cce32a6b2d.svg", + "static/media/dots_three_circle.svg": "/static/media/dots_three_circle.118f0dde621fb3c167f4037f4070820b.svg", + "static/media/marcket_Cap.svg": "/static/media/marcket_Cap.0c4d1eeb6d5442eb063742a76f8eb85d.svg", + "static/media/power.svg": "/static/media/power.11173c1e7918bd1f252144efa0b304bf.svg", + "static/media/version_icon.svg": "/static/media/version_icon.7dd418b127801d5868d4498816d06ddb.svg", + "static/media/arrow-down.svg": "/static/media/arrow-down.b310562ce02fc7aacedce7a4770d31eb.svg", + "static/media/mcap_rank.svg": "/static/media/mcap_rank.a4836cd70201f20096b19a644dfc9e1a.svg", + "static/media/time_icon.svg": "/static/media/time_icon.b6e9d2c0e456454ebb03f8adb3ebcc42.svg", + "static/media/active_icon.svg": "/static/media/active_icon.e8d384e16a398545ed60e042a130ec5c.svg", + "static/media/24low_trading.svg": "/static/media/24low_trading.422cfc004eb6965d82a17b408c903208.svg", + "static/media/24high_trading.svg": "/static/media/24high_trading.4f4fc0ee60b7d1195c8dd6902a2b2ff0.svg", + "main.43eaeb58.css.map": "/static/css/main.43eaeb58.css.map", + "main.ec63cd08.js.map": "/static/js/main.ec63cd08.js.map", + "164.9cff874d.chunk.css.map": "/static/css/164.9cff874d.chunk.css.map", + "164.80a7ea90.chunk.js.map": "/static/js/164.80a7ea90.chunk.js.map", + "116.9cff874d.chunk.css.map": "/static/css/116.9cff874d.chunk.css.map", + "116.ae34d3de.chunk.js.map": "/static/js/116.ae34d3de.chunk.js.map", + "627.9cff874d.chunk.css.map": "/static/css/627.9cff874d.chunk.css.map", + "627.70e22e1d.chunk.js.map": "/static/js/627.70e22e1d.chunk.js.map", + "351.9cff874d.chunk.css.map": "/static/css/351.9cff874d.chunk.css.map", + "351.bb6c2fdd.chunk.js.map": "/static/js/351.bb6c2fdd.chunk.js.map", + "167.b63e9d2b.chunk.css.map": "/static/css/167.b63e9d2b.chunk.css.map", + "167.26dd9587.chunk.js.map": "/static/js/167.26dd9587.chunk.js.map", + "752.dca39cef.chunk.js.map": "/static/js/752.dca39cef.chunk.js.map" }, "entrypoints": [ - "static/js/runtime-main.cd78d362.js", - "static/css/3.7f9fe742.chunk.css", - "static/js/3.bf76d2fc.chunk.js", - "static/js/main.88ace585.chunk.js" + "static/css/main.43eaeb58.css", + "static/js/main.ec63cd08.js" ] } \ No newline at end of file diff --git a/build/index.html b/build/index.html index cd56dbd..808de0e 100644 --- a/build/index.html +++ b/build/index.html @@ -1 +1 @@ -Thornode Network
    \ No newline at end of file +Thornode Network
    \ No newline at end of file diff --git a/build/precache-manifest.c40034b046dff7e6b76d70b92926fef5.js b/build/precache-manifest.c40034b046dff7e6b76d70b92926fef5.js deleted file mode 100644 index 2d97477..0000000 --- a/build/precache-manifest.c40034b046dff7e6b76d70b92926fef5.js +++ /dev/null @@ -1,150 +0,0 @@ -self.__precacheManifest = (self.__precacheManifest || []).concat([ - { - "revision": "009b4b3abd3cf0eff48a079fdb091ea4", - "url": "/index.html" - }, - { - "revision": "e197df880b064d78c8f2", - "url": "/static/css/2.84b081bd.chunk.css" - }, - { - "revision": "15eac3c62496b65e6906", - "url": "/static/css/3.7f9fe742.chunk.css" - }, - { - "revision": "9884ee9b51b15bd8381f", - "url": "/static/css/4.859dae4f.chunk.css" - }, - { - "revision": "e197df880b064d78c8f2", - "url": "/static/js/2.cb4d8c0c.chunk.js" - }, - { - "revision": "4ca2fb521a06ef3d8dcc5fd6248c2384", - "url": "/static/js/2.cb4d8c0c.chunk.js.LICENSE.txt" - }, - { - "revision": "15eac3c62496b65e6906", - "url": "/static/js/3.bf76d2fc.chunk.js" - }, - { - "revision": "419cc368c2139602b172f416efd82a29", - "url": "/static/js/3.bf76d2fc.chunk.js.LICENSE.txt" - }, - { - "revision": "9884ee9b51b15bd8381f", - "url": "/static/js/4.cb7601ad.chunk.js" - }, - { - "revision": "4e0e34f265fae8f33b01b27ae29d9d6f", - "url": "/static/js/4.cb7601ad.chunk.js.LICENSE.txt" - }, - { - "revision": "bea9ff481a13fda86052", - "url": "/static/js/main.88ace585.chunk.js" - }, - { - "revision": "4e0e34f265fae8f33b01b27ae29d9d6f", - "url": "/static/js/main.88ace585.chunk.js.LICENSE.txt" - }, - { - "revision": "586066521c0c209a0d22", - "url": "/static/js/runtime-main.cd78d362.js" - }, - { - "revision": "f812b73300d908dbbff041662071e163", - "url": "/static/media/1.f812b733.png" - }, - { - "revision": "93f709cbd5900c33e2c1244301936b48", - "url": "/static/media/10.93f709cb.png" - }, - { - "revision": "62742201b2404ace61cd1ba94c337309", - "url": "/static/media/11.62742201.png" - }, - { - "revision": "9e675418fd781f55734b4cbca5a2720d", - "url": "/static/media/2.9e675418.png" - }, - { - "revision": "e100e074855b75b5e33ae8baca7d379c", - "url": "/static/media/3.e100e074.png" - }, - { - "revision": "bd3f7c7cb0994bacffef1cf894db443a", - "url": "/static/media/4.bd3f7c7c.png" - }, - { - "revision": "ab2fcb95678e86e3304f52bbbd04b960", - "url": "/static/media/5.ab2fcb95.png" - }, - { - "revision": "e02c5ab6dbacb7cbe3a50eff81451264", - "url": "/static/media/6.e02c5ab6.png" - }, - { - "revision": "352f351b82c8eab01b315b5289f4c135", - "url": "/static/media/7.352f351b.png" - }, - { - "revision": "ea1f3948459bd66e2c4e1ca92c0de2dd", - "url": "/static/media/8.ea1f3948.png" - }, - { - "revision": "ac29f02d365c936fe7c761337e09d702", - "url": "/static/media/9.ac29f02d.png" - }, - { - "revision": "a552edcdd0b2c25ee26fe0d1fb222761", - "url": "/static/media/bitcoin.a552edcd.png" - }, - { - "revision": "16c5b53b0ebc523d9e9621223bea105c", - "url": "/static/media/bitcoincash.16c5b53b.png" - }, - { - "revision": "4e4d59b7a0903071d743973f8e3b3aab", - "url": "/static/media/china.4e4d59b7.svg" - }, - { - "revision": "f9b13f6b6f6107af78a25d3c226dab59", - "url": "/static/media/dogecoin.f9b13f6b.png" - }, - { - "revision": "b203ffd6dc63af83e6d925145f12235a", - "url": "/static/media/eth.b203ffd6.png" - }, - { - "revision": "bcd389debadb2cf1c0332df62b80c1b9", - "url": "/static/media/france.bcd389de.svg" - }, - { - "revision": "8c7b45fc169e1394eb7738441a8825e6", - "url": "/static/media/heart-blank.8c7b45fc.png" - }, - { - "revision": "95f2338a8ddd7c2bbff691f066a04686", - "url": "/static/media/heart-full.95f2338a.png" - }, - { - "revision": "604345b476aa52a0245ee2ffd3cd50db", - "url": "/static/media/italy.604345b4.svg" - }, - { - "revision": "f57b6453dff2a83a4cfdf1dd9f93b929", - "url": "/static/media/profile-bg.f57b6453.jpg" - }, - { - "revision": "6a9dc11ff55791478b31156cd09b6b38", - "url": "/static/media/spain.6a9dc11f.svg" - }, - { - "revision": "bc48afcc15d5d9d51255de0b2ee708be", - "url": "/static/media/uk.bc48afcc.svg" - }, - { - "revision": "d4c245a53042a2a04bdc7d0b7f4f6b6b", - "url": "/static/media/user1.d4c245a5.png" - } -]); \ No newline at end of file diff --git a/build/service-worker.js b/build/service-worker.js deleted file mode 100644 index 94c770b..0000000 --- a/build/service-worker.js +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Welcome to your Workbox-powered service worker! - * - * You'll need to register this file in your web app and you should - * disable HTTP caching for this file too. - * See https://goo.gl/nhQhGp - * - * The rest of the code is auto-generated. Please don't update this file - * directly; instead, make changes to your Workbox build configuration - * and re-run your build process. - * See https://goo.gl/2aRDsh - */ - -importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); - -importScripts( - "/precache-manifest.c40034b046dff7e6b76d70b92926fef5.js" -); - -self.addEventListener('message', (event) => { - if (event.data && event.data.type === 'SKIP_WAITING') { - self.skipWaiting(); - } -}); - -workbox.core.clientsClaim(); - -/** - * The workboxSW.precacheAndRoute() method efficiently caches and responds to - * requests for URLs in the manifest. - * See https://goo.gl/S9QRab - */ -self.__precacheManifest = [].concat(self.__precacheManifest || []); -workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); - -workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/index.html"), { - - blacklist: [/^\/_/,/\/[^/?]+\.[^/]+$/], -}); diff --git a/build/static/css/116.9cff874d.chunk.css b/build/static/css/116.9cff874d.chunk.css new file mode 100644 index 0000000..2dc98c0 --- /dev/null +++ b/build/static/css/116.9cff874d.chunk.css @@ -0,0 +1,2 @@ +#root{height:100%}.ant-layout{min-height:100%;min-width:1920px}body{font-family:monospace!important;font-weight:200}.icons-wrapper svg{color:#7e7e7e}.icons-wrapper svg:hover{color:#1c39bb}td{border:1px solid rgba(0,0,0,.07)}.animateGrow{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-name:animateBlockHeight;animation-name:animateBlockHeight;background-color:#fff;width:-webkit-max-content;width:max-content}@-webkit-keyframes animateBlockHeight{0%{background-color:#fff}35%{background-color:rgba(230,255,117,.5)}65%{background-color:rgba(230,255,117,.5)}to{background-color:#fff}}@keyframes animateBlockHeight{0%{background-color:#fff}35%{background-color:rgba(230,255,117,.5)}65%{background-color:rgba(230,255,117,.5)}to{background-color:#fff}}.nodeaddress:hover{color:#1c39bb}.tableHeader span{position:relative}.tableHeader:hover{color:#004d59}.tableHeader span .sort-icon{position:absolute;right:-5px;top:50%}.tableHeader span .sort-icon.desc{-webkit-transform:translate(100%,-50%) rotate(0deg);transform:translate(100%,-50%) rotate(0deg)}.tableHeader span .sort-icon.asc{-webkit-transform:translate(100%,-50%) rotate(180deg);transform:translate(100%,-50%) rotate(180deg)}.overview-list-wrapper{border-bottom:1px solid #1c39bb;padding-bottom:28px}.overview-list{background:linear-gradient(269.82deg,#fff -20.26%,#fff 99.82%);border-radius:10px;-webkit-column-count:6;column-count:6;-webkit-filter:drop-shadow(0 4px 10px rgba(0,0,0,.1));filter:drop-shadow(0 4px 10px rgba(0,0,0,.1));margin:auto;max-width:1880px;opacity:.8;padding:36px 40px 10px}.overview-item{align-items:center;display:flex;margin-bottom:36px}.overview-item__value{padding-left:22px}.overview-item__value-title{color:#182233;font-size:12px;font-weight:600;letter-spacing:-.015em;line-height:15px}.overview-item__value-value{color:#1b34a0;font-size:13px;font-style:normal;font-weight:600;letter-spacing:-.015em;line-height:16px}iframe{display:none}.cta-wrapper{align-items:center;display:flex;justify-content:space-between;margin:37px 0 16px}.cta-wrapper .cta-link{flex:1 1}.hidden{display:none}.paging-wrapper{color:#9ca3af;padding:25px 0}.page-numbers,.page-numbers li{display:flex;justify-content:center}.page-numbers li{align-items:center;border:1.5px solid #9ca3af;cursor:pointer;font-size:14px;font-weight:700;padding:3px 6px}.page-numbers li.paging-item{line-height:1;margin-right:15px}.page-numbers li.paging-item:hover{color:#182233}.page-numbers li.active{border:1.5px solid #1c39bb;color:#1c39bb}.page-numbers .nav-button{border:none;cursor:pointer}.nav-button--prev{margin-right:20px}.nav-button--next{margin-left:5px}.nav-button.disabled{pointer-events:none}.ant-layout-content{background-image:url(/static/media/liquify_bg.c3b67a9ff864bd54b55d.png),url(/static/media/hex_map_bg.897b05f8054f0473543b.png);background-position:top 160px center,top 960px center;background-repeat:no-repeat;display:flex;flex-direction:column;padding:17px 0 0!important}.loading{align-items:center;display:flex;height:100%;justify-content:center;margin:auto;position:relative;width:100%}.loading_icon{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite;height:203px;width:203px}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.ant-layout-footer{align-items:center;background-color:#fff;display:flex;height:110px;position:relative}.ant-layout-footer .link{cursor:pointer;margin-right:12px}.logo-wrapper{align-items:center;color:#182233;display:flex;flex:1 1;font-size:20px;justify-content:center;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.logo-wrapper span{margin-right:12px}.data-table-wrapper{border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.1);position:relative;z-index:1}.data-table-wrapper:before{background:linear-gradient(90.11deg,#fff 1.08%,#eef0fa);content:"";height:100%;left:0;opacity:.9;position:absolute;top:0;width:100%;z-index:-1}.data-table-wrapper tbody{color:#182233;font-size:14px;font-weight:500;letter-spacing:-.01em;line-height:17px}table{border-collapse:initial;border-spacing:0}td,th{border:none;margin:0}tr{box-shadow:0 0 2px rgba(0,0,0,.1)}tr:first-child{background:none;margin-top:2px}.ant-layout-header{min-width:0!important;min-width:auto!important}.header-left{flex:1 1}.header-left span{font-family:Montserrat;font-size:25px;font-style:normal;font-weight:700;letter-spacing:-.015em;line-height:30px}.header-right{gap:60px}.header-right,.header-right .active-node{align-items:center;display:flex;justify-content:center}.header-right .active-node{border-radius:50%;cursor:pointer;height:46px;overflow:hidden;position:relative;width:46px;z-index:1}.header-right .active-node:before{background:rgba(27,52,160,.8);content:"";-webkit-filter:blur(7.5px);filter:blur(7.5px);height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease-in-out;width:100%;z-index:-1}.header-right .active-node:hover:before{opacity:1}.header-right .active-node.active-node--active:before{background:#1c39bb;content:"";-webkit-filter:none;filter:none;opacity:1;z-index:-1}.no-data{height:400px}.no-data,.no-data__content{align-items:center;display:flex;justify-content:center}.no-data__content{background:#fff;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.25);font-size:20px;font-weight:600;height:180px;letter-spacing:-.015em;line-height:32px;width:500px}.button-filter{background:linear-gradient(90deg,#fff,#edeffa 114.85%);border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.25);height:auto;margin-left:40px;padding:5px}.search-input .anticon-search svg{fill:#c8cace;height:24px;width:24px}.filter-modal .ant-modal,.filter-modal .ant-modal-title{color:#182233}.filter-modal .ant-switch{background:#d9dde7}.filter-modal .ant-switch-checked{background:#1c39bb}.filter-modal .ant-modal-content{background:#fff;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.25);overflow:hidden;padding:38px;width:600px}.filter-modal .ant-modal-header{border:none}.filter-modal .ant-modal-title{color:#182233;font-size:25px;font-weight:700;letter-spacing:-.01em;line-height:30px;text-align:center}.filter-modal .ant-modal-body{padding:32px 0 42px;text-align:center}.filter-modal .ant-modal-footer{border:none;padding:0;text-align:center}.filter-modal .ant-modal-footer .ant-btn-default{background:#6b7280;color:#fff}.filter-modal .ant-modal-footer .ant-btn{min-width:110px}.filter-modal .filter-list{-webkit-column-count:2;column-count:2;-webkit-column-gap:100px;column-gap:100px;display:inline-block;margin:0 auto}.filter-modal .filter-item{align-items:center;color:#182233;display:flex;font-size:14px;font-weight:500;justify-content:space-between;letter-spacing:-.01em;line-height:17px;margin-bottom:24px;width:160px}.filter-modal .ant-switch{border-radius:39px;height:17px;line-height:17px}.filter-modal .ant-switch-handle{height:17px;left:0;line-height:17px;top:0}.filter-modal .ant-switch-checked .ant-switch-handle{left:calc(100% - 17px)}.filter-modal .ant-switch-checked .ant-switch-handle:before{background:#d9dde7}.filter-modal .ant-switch-handle:before{background:#1f1f43}.pie-modal{padding-right:200px;position:center}.pie-modal .ant-modal,.pie-modal .ant-modal-title{color:#182233}.pie-modal .ant-modal-content{background:#fff;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.25);overflow:hidden;padding:38px;width:800px}.pie-modal .ant-modal-header{border:none}.pie-modal .ant-modal-title{color:#182233;font-size:25px;font-weight:700;letter-spacing:-.01em;line-height:30px;text-align:center}.pie-modal .ant-modal-body{padding:0 0 42px;text-align:center}.pie-modal .ant-modal-footer{border:none;padding:0;text-align:center}.pie-modal .ant-btn{background:#1c39bb!important;color:#fff;font-size:16px;font-weight:semi-bold;margin:10px}.ant-breadcrumb .current,.ant-breadcrumb a,.ant-breadcrumb-link,.ant-breadcrumb-separator{color:#182233;font-size:14px;font-weight:500;letter-spacing:-.015em;line-height:17px}.ant-breadcrumb .current{color:#1c39bb}.layout-content-wrapper{margin:0 70px}.feedback-modal .ant-modal-content{background:#fff;border-radius:6px;box-shadow:0 4px 10px rgba(0,0,0,.15)}.feedback-modal .anticon{color:#76ca66!important}.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content{color:#7e7e7e;font-size:12px;font-weight:400;letter-spacing:-.01em;line-height:15px}.feedback-modal .ant-modal-body{padding:36px 30px}.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content strong{font-weight:600}.feedback-modal.ant-modal-confirm .ant-modal-confirm-btns{float:none;margin:18px auto 0;text-align:center}.feedback-modal .ant-btn-primary:focus{background:#1c39bb;border-color:#1c39bb}.ant-modal-mask{background:#333!important;opacity:.6!important}.ant-popover-inner{border-radius:6px;text-align:center}.ant-popover-inner .ant-popover-title{border-bottom:.2px solid #9ca3af;color:#7e7e7e;font-size:12px;font-style:normal;font-weight:600;letter-spacing:-.01em;line-height:15px;padding:8px 16px}.ant-popover-inner .ant-popover-inner-content{color:#7e7e7e;font-size:10px;font-style:normal;font-weight:400;letter-spacing:-.01em;line-height:12px}.nodeaddress{display:inline-block;width:85px}.item-to-show{padding:20px 0}.item-to-show .ant-select-selector{border-radius:6px!important}.item-to-show>span{color:#182233;font-size:12px;font-weight:600;letter-spacing:-.015em;line-height:15px;margin-right:20px}.sort-icon.up{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.my-custom-popover .ant-popover-inner{width:1000px}.icon-wrapper{height:13px;margin-right:10px;padding-top:5px;width:13px} +/*# sourceMappingURL=116.9cff874d.chunk.css.map*/ \ No newline at end of file diff --git a/build/static/css/116.9cff874d.chunk.css.map b/build/static/css/116.9cff874d.chunk.css.map new file mode 100644 index 0000000..8f378d0 --- /dev/null +++ b/build/static/css/116.9cff874d.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/116.9cff874d.chunk.css","mappings":"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","sources":["containers/A_monitor/styles.css"],"sourcesContent":["#root {\r\n height: 100%;\r\n}\r\n.ant-layout {\r\n min-height: 100%;\r\n min-width: 1920px;\r\n}\r\nbody {\r\n font-family: monospace !important;\r\n font-weight: 200;\r\n}\r\n\r\n.icons-wrapper svg {\r\n color: #7e7e7e;\r\n}\r\n.icons-wrapper svg:hover {\r\n color: #1c39bb;\r\n}\r\n\r\ntd {\r\n border-style: solid;\r\n border-width: 1px;\r\n border-color: rgba(0, 0, 0, 0.07);\r\n}\r\n\r\n.animateGrow {\r\n width: max-content;\r\n background-color: white;\r\n animation-name: animateBlockHeight;\r\n animation-duration: 1s;\r\n}\r\n@keyframes animateBlockHeight {\r\n 0% {\r\n background-color: white;\r\n }\r\n 35% {\r\n background-color: rgba(230, 255, 117, 0.5);\r\n }\r\n 65% {\r\n background-color: rgba(230, 255, 117, 0.5);\r\n }\r\n 100% {\r\n background-color: white;\r\n }\r\n}\r\n\r\n.nodeaddress:hover {\r\n color: #1c39bb;\r\n}\r\n\r\n.tableHeader span {\r\n position: relative;\r\n}\r\n\r\n.tableHeader:hover {\r\n color: #004d59;\r\n}\r\n\r\n.tableHeader span .sort-icon {\r\n position: absolute;\r\n top: 50%;\r\n right: -5px;\r\n}\r\n.tableHeader span .sort-icon.desc {\r\n transform: translate(100%, -50%) rotate(0deg);\r\n}\r\n.tableHeader span .sort-icon.asc {\r\n transform: translate(100%, -50%) rotate(180deg);\r\n}\r\n\r\n.overview-list-wrapper {\r\n border-bottom: 1px solid #1c39bb;\r\n padding-bottom: 28px;\r\n}\r\n.overview-list {\r\n column-count: 6;\r\n background: linear-gradient(269.82deg, #ffffff -20.26%, #ffffff 99.82%);\r\n opacity: 0.8;\r\n border-radius: 10px;\r\n padding: 36px 40px 10px;\r\n filter: drop-shadow(0px 4px 10px rgba(0, 0, 0, 0.1));\r\n max-width: 1880px;\r\n margin: auto;\r\n}\r\n\r\n.overview-item {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 36px;\r\n}\r\n\r\n.overview-item__value {\r\n padding-left: 22px;\r\n}\r\n\r\n.overview-item__value-title {\r\n font-weight: 600;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.015em;\r\n color: #182233;\r\n}\r\n\r\n.overview-item__value-value {\r\n font-style: normal;\r\n font-weight: 600;\r\n font-size: 13px;\r\n line-height: 16px;\r\n letter-spacing: -0.015em;\r\n color: #1b34a0;\r\n}\r\n\r\niframe {\r\n display: none;\r\n}\r\n\r\n.cta-wrapper {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin: 37px 0 16px;\r\n}\r\n\r\n.cta-wrapper .cta-link {\r\n flex: 1;\r\n}\r\n\r\n.hidden {\r\n display: none;\r\n}\r\n\r\n.paging-wrapper {\r\n padding: 25px 0;\r\n color: #9ca3af;\r\n}\r\n\r\n.page-numbers {\r\n display: flex;\r\n justify-content: center;\r\n}\r\n.page-numbers li {\r\n border: 1.5px solid #9ca3af;\r\n cursor: pointer;\r\n font-size: 14px;\r\n padding: 3px 6px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-weight: bold;\r\n}\r\n.page-numbers li.paging-item {\r\n margin-right: 15px;\r\n line-height: 1;\r\n}\r\n\r\n.page-numbers li.paging-item:hover {\r\n color: #182233;\r\n}\r\n\r\n.page-numbers li.active {\r\n border: 1.5px solid #1c39bb;\r\n color: #1c39bb;\r\n}\r\n\r\n.page-numbers .nav-button {\r\n border: none;\r\n cursor: pointer;\r\n}\r\n\r\n.nav-button--prev {\r\n margin-right: 20px;\r\n}\r\n.nav-button--next {\r\n margin-left: 5px;\r\n}\r\n\r\n.nav-button.disabled {\r\n pointer-events: none;\r\n}\r\n\r\n.ant-layout-content {\r\n background-image: url(\"./../../assets/images/overview/liquify_bg.png\"),\r\n url(\"./../../assets/images/overview/hex_map_bg.png\");\r\n background-repeat: no-repeat;\r\n background-position: top 160px center, top calc(960px) center;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 17px 0 0 0 !important;\r\n}\r\n\r\n.loading {\r\n position: relative;\r\n margin: auto auto;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.loading_icon {\r\n animation: spin 1s linear infinite;\r\n width: 203px;\r\n height: 203px;\r\n}\r\n\r\n@keyframes spin {\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n\r\n.ant-layout-footer {\r\n background-color: #fff;\r\n height: 110px;\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n}\r\n\r\n.ant-layout-footer .link {\r\n margin-right: 12px;\r\n cursor: pointer;\r\n}\r\n\r\n.logo-wrapper {\r\n flex: 1;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n transform: translate(-50%, -50%);\r\n font-size: 20px;\r\n color: #182233;\r\n}\r\n.logo-wrapper span {\r\n margin-right: 12px;\r\n}\r\n\r\n.data-table-wrapper {\r\n box-shadow: 0px 4px 10px rgb(0 0 0 / 10%);\r\n position: relative;\r\n z-index: 1;\r\n border-radius: 10px;\r\n}\r\n\r\n.data-table-wrapper::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(90.11deg, #ffffff 1.08%, #eef0fa 100%);\r\n opacity: 0.9;\r\n z-index: -1;\r\n}\r\n.data-table-wrapper tbody {\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 17px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n}\r\n\r\ntable {\r\n border-collapse: separate;\r\n border-spacing: 0;\r\n}\r\n\r\ntd,\r\nth {\r\n border: none;\r\n margin: 0;\r\n}\r\n\r\ntr {\r\n box-shadow: 0px 0px 2px rgb(0 0 0 / 10%);\r\n}\r\n\r\ntr:first-child {\r\n background: none;\r\n margin-top: 2px;\r\n}\r\n\r\n.ant-layout-header {\r\n min-width: unset !important;\r\n}\r\n\r\n.header-left {\r\n flex: 1;\r\n}\r\n.header-left span {\r\n font-family: \"Montserrat\";\r\n font-style: normal;\r\n font-weight: 700;\r\n font-size: 25px;\r\n line-height: 30px;\r\n letter-spacing: -0.015em;\r\n}\r\n.header-right {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 60px;\r\n}\r\n\r\n.header-right .active-node {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 46px;\r\n height: 46px;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n position: relative;\r\n z-index: 1;\r\n overflow: hidden;\r\n}\r\n.header-right .active-node::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(27, 52, 160, 0.8);\r\n filter: blur(7.5px);\r\n z-index: -1;\r\n opacity: 0;\r\n transition: opacity 0.3s ease-in-out;\r\n}\r\n.header-right .active-node:hover::before {\r\n opacity: 1;\r\n}\r\n\r\n.header-right .active-node.active-node--active::before {\r\n content: \"\";\r\n background: #1c39bb;\r\n filter: none;\r\n z-index: -1;\r\n opacity: 1;\r\n}\r\n\r\n.no-data {\r\n height: 400px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.no-data__content {\r\n width: 500px;\r\n height: 180px;\r\n background: #ffffff;\r\n box-shadow: 0px 5px 20px rgb(0 0 0 / 25%);\r\n border-radius: 20px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-weight: 600;\r\n font-size: 20px;\r\n line-height: 32px;\r\n letter-spacing: -0.015em;\r\n}\r\n\r\n.button-filter {\r\n height: auto;\r\n padding: 5px;\r\n background: linear-gradient(90deg, #ffffff 0%, #edeffa 114.85%);\r\n box-shadow: 0px 4px 10px rgb(0 0 0 / 25%);\r\n border-radius: 10px;\r\n margin-left: 40px;\r\n}\r\n\r\n.search-input .anticon-search svg {\r\n width: 24px;\r\n height: 24px;\r\n fill: #c8cace;\r\n}\r\n\r\n.filter-modal .ant-modal,\r\n.filter-modal .ant-modal-title {\r\n color: #182233;\r\n}\r\n\r\n.filter-modal .ant-switch {\r\n background: #d9dde7;\r\n}\r\n.filter-modal .ant-switch-checked {\r\n background: #1c39bb;\r\n}\r\n.filter-modal .ant-modal-content {\r\n width: 600px;\r\n background: #ffffff;\r\n box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.25);\r\n border-radius: 20px;\r\n overflow: hidden;\r\n padding: 38px;\r\n}\r\n.filter-modal .ant-modal-header {\r\n border: none;\r\n}\r\n.filter-modal .ant-modal-title {\r\n font-weight: 700;\r\n font-size: 25px;\r\n line-height: 30px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n text-align: center;\r\n}\r\n.filter-modal .ant-modal-body {\r\n text-align: center;\r\n padding: 32px 0 42px;\r\n}\r\n.filter-modal .ant-modal-footer {\r\n border: none;\r\n text-align: center;\r\n padding: 0;\r\n}\r\n.filter-modal .ant-modal-footer .ant-btn-default {\r\n background: #6b7280;\r\n color: #fff;\r\n}\r\n.filter-modal .ant-modal-footer .ant-btn {\r\n min-width: 110px;\r\n}\r\n.filter-modal .filter-list {\r\n column-count: 2;\r\n display: inline-block;\r\n margin: 0 auto;\r\n column-gap: 100px;\r\n}\r\n\r\n.filter-modal .filter-item {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 160px;\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 17px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n margin-bottom: 24px;\r\n}\r\n.filter-modal .ant-switch {\r\n height: 17px;\r\n line-height: 17px;\r\n border-radius: 39px;\r\n}\r\n.filter-modal .ant-switch-handle {\r\n height: 17px;\r\n line-height: 17px;\r\n top: 0;\r\n left: 0;\r\n}\r\n.filter-modal .ant-switch-checked .ant-switch-handle {\r\n left: calc(100% - 17px - 0px);\r\n}\r\n.filter-modal .ant-switch-checked .ant-switch-handle::before {\r\n background: #d9dde7;\r\n}\r\n.filter-modal .ant-switch-handle::before {\r\n background: #1f1f43;\r\n}\r\n\r\n/* .filter-modal .custom-pie-chart {\r\n width: 650px;\r\n height: 100%;\r\n margin: 0 auto;\r\n}\r\n\r\n.filter-modal .custom-pie-chart canvas {\r\n width: 100% !important;\r\n height: 100% !important;\r\n} */\r\n\r\n.pie-modal {\r\n position: center;\r\n padding-right: 200px;\r\n}\r\n\r\n.pie-modal .ant-modal,\r\n.pie-modal .ant-modal-title {\r\n color: #182233;\r\n}\r\n\r\n.pie-modal .ant-modal-content {\r\n width: 800px;\r\n background: #ffffff;\r\n box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.25);\r\n border-radius: 20px;\r\n overflow: hidden;\r\n padding: 38px;\r\n}\r\n.pie-modal .ant-modal-header {\r\n border: none;\r\n}\r\n.pie-modal .ant-modal-title {\r\n font-weight: 700;\r\n font-size: 25px;\r\n line-height: 30px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n text-align: center;\r\n}\r\n.pie-modal .ant-modal-body {\r\n text-align: center;\r\n padding: 0 0 42px;\r\n}\r\n.pie-modal .ant-modal-footer {\r\n border: none;\r\n text-align: center;\r\n padding: 0;\r\n}\r\n\r\n.pie-modal .ant-btn {\r\n background: #1c39bb !important;\r\n color: white;\r\n font-size: 16px;\r\n font-weight: semi-bold;\r\n margin: 10px;\r\n}\r\n\r\n.ant-breadcrumb a,\r\n.ant-breadcrumb .current,\r\n.ant-breadcrumb-link,\r\n.ant-breadcrumb-separator {\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 17px;\r\n letter-spacing: -0.015em;\r\n color: #182233;\r\n}\r\n\r\n.ant-breadcrumb .current {\r\n color: #1c39bb;\r\n}\r\n\r\n.layout-content-wrapper {\r\n margin: 0 70px;\r\n}\r\n\r\n.feedback-modal .ant-modal-content {\r\n background: #ffffff;\r\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.15);\r\n border-radius: 6px;\r\n}\r\n.feedback-modal .anticon {\r\n color: #76ca66 !important;\r\n}\r\n.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content {\r\n font-weight: 400;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.01em;\r\n color: #7e7e7e;\r\n}\r\n.feedback-modal .ant-modal-body {\r\n padding: 36px 30px;\r\n}\r\n.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content strong {\r\n font-weight: 600;\r\n}\r\n.feedback-modal.ant-modal-confirm .ant-modal-confirm-btns {\r\n margin: 18px auto 0;\r\n text-align: center;\r\n float: none;\r\n}\r\n.feedback-modal .ant-btn-primary:focus {\r\n background: #1c39bb;\r\n border-color: #1c39bb;\r\n}\r\n\r\n.ant-modal-mask {\r\n background: #333333 !important;\r\n opacity: 0.6 !important;\r\n}\r\n\r\n.ant-popover-inner {\r\n border-radius: 6px;\r\n text-align: center;\r\n}\r\n.ant-popover-inner .ant-popover-title {\r\n font-style: normal;\r\n font-weight: 600;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.01em;\r\n color: #7e7e7e;\r\n padding: 8px 16px;\r\n border-bottom: 0.2px solid #9ca3af;\r\n}\r\n.ant-popover-inner .ant-popover-inner-content {\r\n font-style: normal;\r\n font-weight: 400;\r\n font-size: 10px;\r\n line-height: 12px;\r\n letter-spacing: -0.01em;\r\n color: #7e7e7e;\r\n}\r\n\r\n.nodeaddress {\r\n display: inline-block;\r\n width: 85px;\r\n}\r\n\r\n.item-to-show {\r\n padding: 20px 0;\r\n}\r\n.item-to-show .ant-select-selector {\r\n border-radius: 6px !important;\r\n}\r\n\r\n.item-to-show > span {\r\n font-weight: 600;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.015em;\r\n color: #182233;\r\n margin-right: 20px;\r\n}\r\n\r\n.sort-icon.up {\r\n transform: rotate(180deg);\r\n}\r\n\r\n.my-custom-popover .ant-popover-inner {\r\n width: 1000px;\r\n}\r\n\r\n.icon-wrapper {\r\n width: 13px;\r\n height: 13px;\r\n padding-top: 5px;\r\n margin-right: 10px;\r\n}\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/css/164.9cff874d.chunk.css b/build/static/css/164.9cff874d.chunk.css new file mode 100644 index 0000000..bb8abeb --- /dev/null +++ b/build/static/css/164.9cff874d.chunk.css @@ -0,0 +1,2 @@ +#root{height:100%}.ant-layout{min-height:100%;min-width:1920px}body{font-family:monospace!important;font-weight:200}.icons-wrapper svg{color:#7e7e7e}.icons-wrapper svg:hover{color:#1c39bb}td{border:1px solid rgba(0,0,0,.07)}.animateGrow{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-name:animateBlockHeight;animation-name:animateBlockHeight;background-color:#fff;width:-webkit-max-content;width:max-content}@-webkit-keyframes animateBlockHeight{0%{background-color:#fff}35%{background-color:rgba(230,255,117,.5)}65%{background-color:rgba(230,255,117,.5)}to{background-color:#fff}}@keyframes animateBlockHeight{0%{background-color:#fff}35%{background-color:rgba(230,255,117,.5)}65%{background-color:rgba(230,255,117,.5)}to{background-color:#fff}}.nodeaddress:hover{color:#1c39bb}.tableHeader span{position:relative}.tableHeader:hover{color:#004d59}.tableHeader span .sort-icon{position:absolute;right:-5px;top:50%}.tableHeader span .sort-icon.desc{-webkit-transform:translate(100%,-50%) rotate(0deg);transform:translate(100%,-50%) rotate(0deg)}.tableHeader span .sort-icon.asc{-webkit-transform:translate(100%,-50%) rotate(180deg);transform:translate(100%,-50%) rotate(180deg)}.overview-list-wrapper{border-bottom:1px solid #1c39bb;padding-bottom:28px}.overview-list{background:linear-gradient(269.82deg,#fff -20.26%,#fff 99.82%);border-radius:10px;-webkit-column-count:6;column-count:6;-webkit-filter:drop-shadow(0 4px 10px rgba(0,0,0,.1));filter:drop-shadow(0 4px 10px rgba(0,0,0,.1));margin:auto;max-width:1880px;opacity:.8;padding:36px 40px 10px}.overview-item{align-items:center;display:flex;margin-bottom:36px}.overview-item__value{padding-left:22px}.overview-item__value-title{color:#182233;font-size:12px;font-weight:600;letter-spacing:-.015em;line-height:15px}.overview-item__value-value{color:#1b34a0;font-size:13px;font-style:normal;font-weight:600;letter-spacing:-.015em;line-height:16px}iframe{display:none}.cta-wrapper{align-items:center;display:flex;justify-content:space-between;margin:37px 0 16px}.cta-wrapper .cta-link{flex:1 1}.hidden{display:none}.paging-wrapper{color:#9ca3af;padding:25px 0}.page-numbers,.page-numbers li{display:flex;justify-content:center}.page-numbers li{align-items:center;border:1.5px solid #9ca3af;cursor:pointer;font-size:14px;font-weight:700;padding:3px 6px}.page-numbers li.paging-item{line-height:1;margin-right:15px}.page-numbers li.paging-item:hover{color:#182233}.page-numbers li.active{border:1.5px solid #1c39bb;color:#1c39bb}.page-numbers .nav-button{border:none;cursor:pointer}.nav-button--prev{margin-right:20px}.nav-button--next{margin-left:5px}.nav-button.disabled{pointer-events:none}.ant-layout-content{background-image:url(/static/media/liquify_bg.c3b67a9ff864bd54b55d.png),url(/static/media/hex_map_bg.897b05f8054f0473543b.png);background-position:top 160px center,top 960px center;background-repeat:no-repeat;display:flex;flex-direction:column;padding:17px 0 0!important}.loading{align-items:center;display:flex;height:100%;justify-content:center;margin:auto;position:relative;width:100%}.loading_icon{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite;height:203px;width:203px}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.ant-layout-footer{align-items:center;background-color:#fff;display:flex;height:110px;position:relative}.ant-layout-footer .link{cursor:pointer;margin-right:12px}.logo-wrapper{align-items:center;color:#182233;display:flex;flex:1 1;font-size:20px;justify-content:center;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.logo-wrapper span{margin-right:12px}.data-table-wrapper{border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.1);position:relative;z-index:1}.data-table-wrapper:before{background:linear-gradient(90.11deg,#fff 1.08%,#eef0fa);content:"";height:100%;left:0;opacity:.9;position:absolute;top:0;width:100%;z-index:-1}.data-table-wrapper tbody{color:#182233;font-size:14px;font-weight:500;letter-spacing:-.01em;line-height:17px}table{border-collapse:initial;border-spacing:0}td,th{border:none;margin:0}tr{box-shadow:0 0 2px rgba(0,0,0,.1)}tr:first-child{background:none;margin-top:2px}.ant-layout-header{min-width:0!important;min-width:auto!important}.header-left{flex:1 1}.header-left span{font-family:Montserrat;font-size:25px;font-style:normal;font-weight:700;letter-spacing:-.015em;line-height:30px}.header-right{gap:60px}.header-right,.header-right .active-node{align-items:center;display:flex;justify-content:center}.header-right .active-node{border-radius:50%;cursor:pointer;height:46px;overflow:hidden;position:relative;width:46px;z-index:1}.header-right .active-node:before{background:rgba(27,52,160,.8);content:"";-webkit-filter:blur(7.5px);filter:blur(7.5px);height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease-in-out;width:100%;z-index:-1}.header-right .active-node:hover:before{opacity:1}.header-right .active-node.active-node--active:before{background:#1c39bb;content:"";-webkit-filter:none;filter:none;opacity:1;z-index:-1}.no-data{height:400px}.no-data,.no-data__content{align-items:center;display:flex;justify-content:center}.no-data__content{background:#fff;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.25);font-size:20px;font-weight:600;height:180px;letter-spacing:-.015em;line-height:32px;width:500px}.button-filter{background:linear-gradient(90deg,#fff,#edeffa 114.85%);border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.25);height:auto;margin-left:40px;padding:5px}.search-input .anticon-search svg{fill:#c8cace;height:24px;width:24px}.filter-modal .ant-modal,.filter-modal .ant-modal-title{color:#182233}.filter-modal .ant-switch{background:#d9dde7}.filter-modal .ant-switch-checked{background:#1c39bb}.filter-modal .ant-modal-content{background:#fff;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.25);overflow:hidden;padding:38px;width:600px}.filter-modal .ant-modal-header{border:none}.filter-modal .ant-modal-title{color:#182233;font-size:25px;font-weight:700;letter-spacing:-.01em;line-height:30px;text-align:center}.filter-modal .ant-modal-body{padding:32px 0 42px;text-align:center}.filter-modal .ant-modal-footer{border:none;padding:0;text-align:center}.filter-modal .ant-modal-footer .ant-btn-default{background:#6b7280;color:#fff}.filter-modal .ant-modal-footer .ant-btn{min-width:110px}.filter-modal .filter-list{-webkit-column-count:2;column-count:2;-webkit-column-gap:100px;column-gap:100px;display:inline-block;margin:0 auto}.filter-modal .filter-item{align-items:center;color:#182233;display:flex;font-size:14px;font-weight:500;justify-content:space-between;letter-spacing:-.01em;line-height:17px;margin-bottom:24px;width:160px}.filter-modal .ant-switch{border-radius:39px;height:17px;line-height:17px}.filter-modal .ant-switch-handle{height:17px;left:0;line-height:17px;top:0}.filter-modal .ant-switch-checked .ant-switch-handle{left:calc(100% - 17px)}.filter-modal .ant-switch-checked .ant-switch-handle:before{background:#d9dde7}.filter-modal .ant-switch-handle:before{background:#1f1f43}.pie-modal{padding-right:200px;position:center}.pie-modal .ant-modal,.pie-modal .ant-modal-title{color:#182233}.pie-modal .ant-modal-content{background:#fff;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.25);overflow:hidden;padding:38px;width:800px}.pie-modal .ant-modal-header{border:none}.pie-modal .ant-modal-title{color:#182233;font-size:25px;font-weight:700;letter-spacing:-.01em;line-height:30px;text-align:center}.pie-modal .ant-modal-body{padding:0 0 42px;text-align:center}.pie-modal .ant-modal-footer{border:none;padding:0;text-align:center}.pie-modal .ant-btn{background:#1c39bb!important;color:#fff;font-size:16px;font-weight:semi-bold;margin:10px}.ant-breadcrumb .current,.ant-breadcrumb a,.ant-breadcrumb-link,.ant-breadcrumb-separator{color:#182233;font-size:14px;font-weight:500;letter-spacing:-.015em;line-height:17px}.ant-breadcrumb .current{color:#1c39bb}.layout-content-wrapper{margin:0 70px}.feedback-modal .ant-modal-content{background:#fff;border-radius:6px;box-shadow:0 4px 10px rgba(0,0,0,.15)}.feedback-modal .anticon{color:#76ca66!important}.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content{color:#7e7e7e;font-size:12px;font-weight:400;letter-spacing:-.01em;line-height:15px}.feedback-modal .ant-modal-body{padding:36px 30px}.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content strong{font-weight:600}.feedback-modal.ant-modal-confirm .ant-modal-confirm-btns{float:none;margin:18px auto 0;text-align:center}.feedback-modal .ant-btn-primary:focus{background:#1c39bb;border-color:#1c39bb}.ant-modal-mask{background:#333!important;opacity:.6!important}.ant-popover-inner{border-radius:6px;text-align:center}.ant-popover-inner .ant-popover-title{border-bottom:.2px solid #9ca3af;color:#7e7e7e;font-size:12px;font-style:normal;font-weight:600;letter-spacing:-.01em;line-height:15px;padding:8px 16px}.ant-popover-inner .ant-popover-inner-content{color:#7e7e7e;font-size:10px;font-style:normal;font-weight:400;letter-spacing:-.01em;line-height:12px}.nodeaddress{display:inline-block;width:85px}.item-to-show{padding:20px 0}.item-to-show .ant-select-selector{border-radius:6px!important}.item-to-show>span{color:#182233;font-size:12px;font-weight:600;letter-spacing:-.015em;line-height:15px;margin-right:20px}.sort-icon.up{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.my-custom-popover .ant-popover-inner{width:1000px}.icon-wrapper{height:13px;margin-right:10px;padding-top:5px;width:13px} +/*# sourceMappingURL=164.9cff874d.chunk.css.map*/ \ No newline at end of file diff --git a/build/static/css/164.9cff874d.chunk.css.map b/build/static/css/164.9cff874d.chunk.css.map new file mode 100644 index 0000000..813cd7b --- /dev/null +++ b/build/static/css/164.9cff874d.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/164.9cff874d.chunk.css","mappings":"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","sources":["containers/A_monitor/styles.css"],"sourcesContent":["#root {\r\n height: 100%;\r\n}\r\n.ant-layout {\r\n min-height: 100%;\r\n min-width: 1920px;\r\n}\r\nbody {\r\n font-family: monospace !important;\r\n font-weight: 200;\r\n}\r\n\r\n.icons-wrapper svg {\r\n color: #7e7e7e;\r\n}\r\n.icons-wrapper svg:hover {\r\n color: #1c39bb;\r\n}\r\n\r\ntd {\r\n border-style: solid;\r\n border-width: 1px;\r\n border-color: rgba(0, 0, 0, 0.07);\r\n}\r\n\r\n.animateGrow {\r\n width: max-content;\r\n background-color: white;\r\n animation-name: animateBlockHeight;\r\n animation-duration: 1s;\r\n}\r\n@keyframes animateBlockHeight {\r\n 0% {\r\n background-color: white;\r\n }\r\n 35% {\r\n background-color: rgba(230, 255, 117, 0.5);\r\n }\r\n 65% {\r\n background-color: rgba(230, 255, 117, 0.5);\r\n }\r\n 100% {\r\n background-color: white;\r\n }\r\n}\r\n\r\n.nodeaddress:hover {\r\n color: #1c39bb;\r\n}\r\n\r\n.tableHeader span {\r\n position: relative;\r\n}\r\n\r\n.tableHeader:hover {\r\n color: #004d59;\r\n}\r\n\r\n.tableHeader span .sort-icon {\r\n position: absolute;\r\n top: 50%;\r\n right: -5px;\r\n}\r\n.tableHeader span .sort-icon.desc {\r\n transform: translate(100%, -50%) rotate(0deg);\r\n}\r\n.tableHeader span .sort-icon.asc {\r\n transform: translate(100%, -50%) rotate(180deg);\r\n}\r\n\r\n.overview-list-wrapper {\r\n border-bottom: 1px solid #1c39bb;\r\n padding-bottom: 28px;\r\n}\r\n.overview-list {\r\n column-count: 6;\r\n background: linear-gradient(269.82deg, #ffffff -20.26%, #ffffff 99.82%);\r\n opacity: 0.8;\r\n border-radius: 10px;\r\n padding: 36px 40px 10px;\r\n filter: drop-shadow(0px 4px 10px rgba(0, 0, 0, 0.1));\r\n max-width: 1880px;\r\n margin: auto;\r\n}\r\n\r\n.overview-item {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 36px;\r\n}\r\n\r\n.overview-item__value {\r\n padding-left: 22px;\r\n}\r\n\r\n.overview-item__value-title {\r\n font-weight: 600;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.015em;\r\n color: #182233;\r\n}\r\n\r\n.overview-item__value-value {\r\n font-style: normal;\r\n font-weight: 600;\r\n font-size: 13px;\r\n line-height: 16px;\r\n letter-spacing: -0.015em;\r\n color: #1b34a0;\r\n}\r\n\r\niframe {\r\n display: none;\r\n}\r\n\r\n.cta-wrapper {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin: 37px 0 16px;\r\n}\r\n\r\n.cta-wrapper .cta-link {\r\n flex: 1;\r\n}\r\n\r\n.hidden {\r\n display: none;\r\n}\r\n\r\n.paging-wrapper {\r\n padding: 25px 0;\r\n color: #9ca3af;\r\n}\r\n\r\n.page-numbers {\r\n display: flex;\r\n justify-content: center;\r\n}\r\n.page-numbers li {\r\n border: 1.5px solid #9ca3af;\r\n cursor: pointer;\r\n font-size: 14px;\r\n padding: 3px 6px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-weight: bold;\r\n}\r\n.page-numbers li.paging-item {\r\n margin-right: 15px;\r\n line-height: 1;\r\n}\r\n\r\n.page-numbers li.paging-item:hover {\r\n color: #182233;\r\n}\r\n\r\n.page-numbers li.active {\r\n border: 1.5px solid #1c39bb;\r\n color: #1c39bb;\r\n}\r\n\r\n.page-numbers .nav-button {\r\n border: none;\r\n cursor: pointer;\r\n}\r\n\r\n.nav-button--prev {\r\n margin-right: 20px;\r\n}\r\n.nav-button--next {\r\n margin-left: 5px;\r\n}\r\n\r\n.nav-button.disabled {\r\n pointer-events: none;\r\n}\r\n\r\n.ant-layout-content {\r\n background-image: url(\"./../../assets/images/overview/liquify_bg.png\"),\r\n url(\"./../../assets/images/overview/hex_map_bg.png\");\r\n background-repeat: no-repeat;\r\n background-position: top 160px center, top calc(960px) center;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 17px 0 0 0 !important;\r\n}\r\n\r\n.loading {\r\n position: relative;\r\n margin: auto auto;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.loading_icon {\r\n animation: spin 1s linear infinite;\r\n width: 203px;\r\n height: 203px;\r\n}\r\n\r\n@keyframes spin {\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n\r\n.ant-layout-footer {\r\n background-color: #fff;\r\n height: 110px;\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n}\r\n\r\n.ant-layout-footer .link {\r\n margin-right: 12px;\r\n cursor: pointer;\r\n}\r\n\r\n.logo-wrapper {\r\n flex: 1;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n transform: translate(-50%, -50%);\r\n font-size: 20px;\r\n color: #182233;\r\n}\r\n.logo-wrapper span {\r\n margin-right: 12px;\r\n}\r\n\r\n.data-table-wrapper {\r\n box-shadow: 0px 4px 10px rgb(0 0 0 / 10%);\r\n position: relative;\r\n z-index: 1;\r\n border-radius: 10px;\r\n}\r\n\r\n.data-table-wrapper::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(90.11deg, #ffffff 1.08%, #eef0fa 100%);\r\n opacity: 0.9;\r\n z-index: -1;\r\n}\r\n.data-table-wrapper tbody {\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 17px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n}\r\n\r\ntable {\r\n border-collapse: separate;\r\n border-spacing: 0;\r\n}\r\n\r\ntd,\r\nth {\r\n border: none;\r\n margin: 0;\r\n}\r\n\r\ntr {\r\n box-shadow: 0px 0px 2px rgb(0 0 0 / 10%);\r\n}\r\n\r\ntr:first-child {\r\n background: none;\r\n margin-top: 2px;\r\n}\r\n\r\n.ant-layout-header {\r\n min-width: unset !important;\r\n}\r\n\r\n.header-left {\r\n flex: 1;\r\n}\r\n.header-left span {\r\n font-family: \"Montserrat\";\r\n font-style: normal;\r\n font-weight: 700;\r\n font-size: 25px;\r\n line-height: 30px;\r\n letter-spacing: -0.015em;\r\n}\r\n.header-right {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 60px;\r\n}\r\n\r\n.header-right .active-node {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 46px;\r\n height: 46px;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n position: relative;\r\n z-index: 1;\r\n overflow: hidden;\r\n}\r\n.header-right .active-node::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(27, 52, 160, 0.8);\r\n filter: blur(7.5px);\r\n z-index: -1;\r\n opacity: 0;\r\n transition: opacity 0.3s ease-in-out;\r\n}\r\n.header-right .active-node:hover::before {\r\n opacity: 1;\r\n}\r\n\r\n.header-right .active-node.active-node--active::before {\r\n content: \"\";\r\n background: #1c39bb;\r\n filter: none;\r\n z-index: -1;\r\n opacity: 1;\r\n}\r\n\r\n.no-data {\r\n height: 400px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.no-data__content {\r\n width: 500px;\r\n height: 180px;\r\n background: #ffffff;\r\n box-shadow: 0px 5px 20px rgb(0 0 0 / 25%);\r\n border-radius: 20px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-weight: 600;\r\n font-size: 20px;\r\n line-height: 32px;\r\n letter-spacing: -0.015em;\r\n}\r\n\r\n.button-filter {\r\n height: auto;\r\n padding: 5px;\r\n background: linear-gradient(90deg, #ffffff 0%, #edeffa 114.85%);\r\n box-shadow: 0px 4px 10px rgb(0 0 0 / 25%);\r\n border-radius: 10px;\r\n margin-left: 40px;\r\n}\r\n\r\n.search-input .anticon-search svg {\r\n width: 24px;\r\n height: 24px;\r\n fill: #c8cace;\r\n}\r\n\r\n.filter-modal .ant-modal,\r\n.filter-modal .ant-modal-title {\r\n color: #182233;\r\n}\r\n\r\n.filter-modal .ant-switch {\r\n background: #d9dde7;\r\n}\r\n.filter-modal .ant-switch-checked {\r\n background: #1c39bb;\r\n}\r\n.filter-modal .ant-modal-content {\r\n width: 600px;\r\n background: #ffffff;\r\n box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.25);\r\n border-radius: 20px;\r\n overflow: hidden;\r\n padding: 38px;\r\n}\r\n.filter-modal .ant-modal-header {\r\n border: none;\r\n}\r\n.filter-modal .ant-modal-title {\r\n font-weight: 700;\r\n font-size: 25px;\r\n line-height: 30px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n text-align: center;\r\n}\r\n.filter-modal .ant-modal-body {\r\n text-align: center;\r\n padding: 32px 0 42px;\r\n}\r\n.filter-modal .ant-modal-footer {\r\n border: none;\r\n text-align: center;\r\n padding: 0;\r\n}\r\n.filter-modal .ant-modal-footer .ant-btn-default {\r\n background: #6b7280;\r\n color: #fff;\r\n}\r\n.filter-modal .ant-modal-footer .ant-btn {\r\n min-width: 110px;\r\n}\r\n.filter-modal .filter-list {\r\n column-count: 2;\r\n display: inline-block;\r\n margin: 0 auto;\r\n column-gap: 100px;\r\n}\r\n\r\n.filter-modal .filter-item {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 160px;\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 17px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n margin-bottom: 24px;\r\n}\r\n.filter-modal .ant-switch {\r\n height: 17px;\r\n line-height: 17px;\r\n border-radius: 39px;\r\n}\r\n.filter-modal .ant-switch-handle {\r\n height: 17px;\r\n line-height: 17px;\r\n top: 0;\r\n left: 0;\r\n}\r\n.filter-modal .ant-switch-checked .ant-switch-handle {\r\n left: calc(100% - 17px - 0px);\r\n}\r\n.filter-modal .ant-switch-checked .ant-switch-handle::before {\r\n background: #d9dde7;\r\n}\r\n.filter-modal .ant-switch-handle::before {\r\n background: #1f1f43;\r\n}\r\n\r\n/* .filter-modal .custom-pie-chart {\r\n width: 650px;\r\n height: 100%;\r\n margin: 0 auto;\r\n}\r\n\r\n.filter-modal .custom-pie-chart canvas {\r\n width: 100% !important;\r\n height: 100% !important;\r\n} */\r\n\r\n.pie-modal {\r\n position: center;\r\n padding-right: 200px;\r\n}\r\n\r\n.pie-modal .ant-modal,\r\n.pie-modal .ant-modal-title {\r\n color: #182233;\r\n}\r\n\r\n.pie-modal .ant-modal-content {\r\n width: 800px;\r\n background: #ffffff;\r\n box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.25);\r\n border-radius: 20px;\r\n overflow: hidden;\r\n padding: 38px;\r\n}\r\n.pie-modal .ant-modal-header {\r\n border: none;\r\n}\r\n.pie-modal .ant-modal-title {\r\n font-weight: 700;\r\n font-size: 25px;\r\n line-height: 30px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n text-align: center;\r\n}\r\n.pie-modal .ant-modal-body {\r\n text-align: center;\r\n padding: 0 0 42px;\r\n}\r\n.pie-modal .ant-modal-footer {\r\n border: none;\r\n text-align: center;\r\n padding: 0;\r\n}\r\n\r\n.pie-modal .ant-btn {\r\n background: #1c39bb !important;\r\n color: white;\r\n font-size: 16px;\r\n font-weight: semi-bold;\r\n margin: 10px;\r\n}\r\n\r\n.ant-breadcrumb a,\r\n.ant-breadcrumb .current,\r\n.ant-breadcrumb-link,\r\n.ant-breadcrumb-separator {\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 17px;\r\n letter-spacing: -0.015em;\r\n color: #182233;\r\n}\r\n\r\n.ant-breadcrumb .current {\r\n color: #1c39bb;\r\n}\r\n\r\n.layout-content-wrapper {\r\n margin: 0 70px;\r\n}\r\n\r\n.feedback-modal .ant-modal-content {\r\n background: #ffffff;\r\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.15);\r\n border-radius: 6px;\r\n}\r\n.feedback-modal .anticon {\r\n color: #76ca66 !important;\r\n}\r\n.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content {\r\n font-weight: 400;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.01em;\r\n color: #7e7e7e;\r\n}\r\n.feedback-modal .ant-modal-body {\r\n padding: 36px 30px;\r\n}\r\n.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content strong {\r\n font-weight: 600;\r\n}\r\n.feedback-modal.ant-modal-confirm .ant-modal-confirm-btns {\r\n margin: 18px auto 0;\r\n text-align: center;\r\n float: none;\r\n}\r\n.feedback-modal .ant-btn-primary:focus {\r\n background: #1c39bb;\r\n border-color: #1c39bb;\r\n}\r\n\r\n.ant-modal-mask {\r\n background: #333333 !important;\r\n opacity: 0.6 !important;\r\n}\r\n\r\n.ant-popover-inner {\r\n border-radius: 6px;\r\n text-align: center;\r\n}\r\n.ant-popover-inner .ant-popover-title {\r\n font-style: normal;\r\n font-weight: 600;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.01em;\r\n color: #7e7e7e;\r\n padding: 8px 16px;\r\n border-bottom: 0.2px solid #9ca3af;\r\n}\r\n.ant-popover-inner .ant-popover-inner-content {\r\n font-style: normal;\r\n font-weight: 400;\r\n font-size: 10px;\r\n line-height: 12px;\r\n letter-spacing: -0.01em;\r\n color: #7e7e7e;\r\n}\r\n\r\n.nodeaddress {\r\n display: inline-block;\r\n width: 85px;\r\n}\r\n\r\n.item-to-show {\r\n padding: 20px 0;\r\n}\r\n.item-to-show .ant-select-selector {\r\n border-radius: 6px !important;\r\n}\r\n\r\n.item-to-show > span {\r\n font-weight: 600;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.015em;\r\n color: #182233;\r\n margin-right: 20px;\r\n}\r\n\r\n.sort-icon.up {\r\n transform: rotate(180deg);\r\n}\r\n\r\n.my-custom-popover .ant-popover-inner {\r\n width: 1000px;\r\n}\r\n\r\n.icon-wrapper {\r\n width: 13px;\r\n height: 13px;\r\n padding-top: 5px;\r\n margin-right: 10px;\r\n}\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/css/167.b63e9d2b.chunk.css b/build/static/css/167.b63e9d2b.chunk.css new file mode 100644 index 0000000..fa61d06 --- /dev/null +++ b/build/static/css/167.b63e9d2b.chunk.css @@ -0,0 +1,2 @@ +.ant-breadcrumb{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);color:rgba(0,0,0,.45);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb ol{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.ant-breadcrumb a{color:rgba(0,0,0,.45);transition:color .3s}.ant-breadcrumb a:hover,.ant-breadcrumb li:last-child,.ant-breadcrumb li:last-child a{color:rgba(0,0,0,.85)}li:last-child>.ant-breadcrumb-separator{display:none}.ant-breadcrumb-separator{color:rgba(0,0,0,.45);margin:0 8px}.ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-breadcrumb-rtl{direction:rtl}.ant-breadcrumb-rtl:before{content:"";display:table}.ant-breadcrumb-rtl:after{clear:both;content:"";display:table}.ant-breadcrumb-rtl>span{float:right}.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link>.anticon{margin-left:0;margin-right:4px}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger{color:#ff4d4f}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover{background-color:#ff4d4f;color:#fff}.ant-dropdown{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:block;font-size:14px;font-variant:tabular-nums;left:-9999px;line-height:1.5715;list-style:none;margin:0;padding:0;position:absolute;top:-9999px;z-index:1050}.ant-dropdown:before{bottom:-4px;content:" ";left:-7px;opacity:.0001;position:absolute;right:0;top:-4px;z-index:-9999}.ant-dropdown-wrap{position:relative}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px}.ant-dropdown-wrap .anticon-down:before{transition:transform .2s}.ant-dropdown-wrap-open .anticon-down:before{transform:rotate(180deg)}.ant-dropdown-hidden,.ant-dropdown-menu-hidden,.ant-dropdown-menu-submenu-hidden{display:none}.ant-dropdown-show-arrow.ant-dropdown-placement-top,.ant-dropdown-show-arrow.ant-dropdown-placement-topLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-topRight{padding-bottom:15.3137085px}.ant-dropdown-show-arrow.ant-dropdown-placement-bottom,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomRight{padding-top:15.3137085px}.ant-dropdown-arrow{border-radius:0 0 2px;display:block;height:11.3137085px;pointer-events:none;position:absolute;width:11.3137085px;z-index:1}.ant-dropdown-arrow:before{background:#fff;background-position:-10px -10px;background-repeat:no-repeat;-webkit-clip-path:inset(33% 33%);clip-path:inset(33% 33%);-webkit-clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");content:"";height:33.9411255px;left:-11.3137085px;position:absolute;top:-11.3137085px;width:33.9411255px}.ant-dropdown-placement-top>.ant-dropdown-arrow,.ant-dropdown-placement-topLeft>.ant-dropdown-arrow,.ant-dropdown-placement-topRight>.ant-dropdown-arrow{bottom:10px;box-shadow:3px 3px 7px -3px rgba(0,0,0,.1);transform:rotate(45deg)}.ant-dropdown-placement-top>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-topLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-topRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-placement-bottom>.ant-dropdown-arrow,.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow,.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{box-shadow:2px 2px 5px -2px rgba(0,0,0,.1);top:9.41421356px;transform:rotate(-135deg) translateY(-.5px)}.ant-dropdown-placement-bottom>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(-135deg) translateY(-.5px)}.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-menu{background-clip:padding-box;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);list-style-type:none;margin:0;outline:none;padding:4px 0;position:relative;text-align:left}.ant-dropdown-menu-item-group-title{color:rgba(0,0,0,.45);padding:5px 12px;transition:all .3s}.ant-dropdown-menu-submenu-popup{background:transparent;box-shadow:none;position:absolute;transform-origin:0 0;z-index:1050}.ant-dropdown-menu-submenu-popup li,.ant-dropdown-menu-submenu-popup ul{list-style:none}.ant-dropdown-menu-submenu-popup ul{margin-left:.3em;margin-right:.3em}.ant-dropdown-menu-item{align-items:center;display:flex;position:relative}.ant-dropdown-menu-item-icon{font-size:12px;margin-right:8px;min-width:12px}.ant-dropdown-menu-title-content{flex:auto}.ant-dropdown-menu-title-content>a{color:inherit;transition:all .3s}.ant-dropdown-menu-title-content>a:hover{color:inherit}.ant-dropdown-menu-title-content>a:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{clear:both;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-weight:400;line-height:22px;margin:0;padding:5px 12px;transition:all .3s}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected{background-color:#e6f7ff;color:#1890ff}.ant-dropdown-menu-item.ant-dropdown-menu-item-active,.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-active,.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-active,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-active,.ant-dropdown-menu-submenu-title:hover{background-color:#f5f5f5}.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled:hover,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled:hover{background-color:#fff;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled a,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled a{pointer-events:none}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{background-color:#f0f0f0;height:1px;line-height:0;margin:4px 0;overflow:hidden}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{position:absolute;right:8px}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,.45);font-size:10px;font-style:normal;margin-right:0!important}.ant-dropdown-menu-item-group-list{list-style:none;margin:0 8px;padding:0}.ant-dropdown-menu-submenu-title{padding-right:24px}.ant-dropdown-menu-submenu-vertical{position:relative}.ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{left:100%;margin-left:4px;min-width:100%;position:absolute;top:0;transform-origin:0 0}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{background-color:#fff;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottom,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottom,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpIn}.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-top,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-top,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight{animation-name:antSlideDownIn}.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottom,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpOut}.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-top,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight{animation-name:antSlideDownOut}.ant-dropdown-button>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down,.ant-dropdown-trigger>.anticon.anticon-down{font-size:10px;vertical-align:initial}.ant-dropdown-button{white-space:nowrap}.ant-dropdown-button.ant-btn-group>.ant-btn-loading,.ant-dropdown-button.ant-btn-group>.ant-btn-loading+.ant-btn{cursor:default;pointer-events:none}.ant-dropdown-button.ant-btn-group>.ant-btn-loading+.ant-btn:before{display:block}.ant-dropdown-button.ant-btn-group>.ant-btn:last-child:not(:first-child):not(.ant-btn-icon-only){padding-left:8px;padding-right:8px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow:after{color:hsla(0,0%,100%,.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover{background:transparent;color:#fff}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{background:#1890ff;color:#fff}.ant-dropdown-rtl{direction:rtl}.ant-dropdown-rtl.ant-dropdown:before{left:0;right:-7px}.ant-dropdown-menu-submenu-rtl .ant-dropdown-menu-item-group-title,.ant-dropdown-menu.ant-dropdown-menu-rtl,.ant-dropdown-rtl .ant-dropdown-menu-item-group-title{direction:rtl;text-align:right}.ant-dropdown-menu-submenu-popup.ant-dropdown-menu-submenu-rtl{transform-origin:100% 0}.ant-dropdown-rtl .ant-dropdown-menu-item,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{text-align:right}.ant-dropdown-rtl .ant-dropdown-menu-item>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-item>span>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>span>.anticon:first-child{margin-left:8px;margin-right:0}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{left:8px;right:auto}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-left:0!important;transform:scaleX(-1)}.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{padding-left:24px;padding-right:12px}.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{left:0;margin-left:0;margin-right:4px;right:100%}.ant-menu-item-danger.ant-menu-item,.ant-menu-item-danger.ant-menu-item-active,.ant-menu-item-danger.ant-menu-item:hover{color:#ff4d4f}.ant-menu-item-danger.ant-menu-item:active{background:#fff1f0}.ant-menu-item-danger.ant-menu-item-selected,.ant-menu-item-danger.ant-menu-item-selected>a,.ant-menu-item-danger.ant-menu-item-selected>a:hover{color:#ff4d4f}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{background-color:#fff1f0}.ant-menu-inline .ant-menu-item-danger.ant-menu-item:after{border-right-color:#ff4d4f}.ant-menu-dark .ant-menu-item-danger.ant-menu-item,.ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover,.ant-menu-dark .ant-menu-item-danger.ant-menu-item>a{color:#ff4d4f}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{background-color:#ff4d4f;color:#fff}.ant-menu{font-feature-settings:"tnum","tnum";background:#fff;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:0;list-style:none;margin:0;outline:none;padding:0;text-align:left;transition:background .3s,width .3s cubic-bezier(.2,0,0,1) 0s}.ant-menu:after,.ant-menu:before{content:"";display:table}.ant-menu:after{clear:both}.ant-menu.ant-menu-root:focus-visible{box-shadow:0 0 0 2px #bae7ff}.ant-menu ol,.ant-menu ul{list-style:none;margin:0;padding:0}.ant-menu-overflow{display:flex}.ant-menu-overflow-item{flex:none}.ant-menu-hidden,.ant-menu-submenu-hidden{display:none}.ant-menu-item-group-title{color:rgba(0,0,0,.45);font-size:14px;height:1.5715;line-height:1.5715;padding:8px 16px;transition:all .3s}.ant-menu-horizontal .ant-menu-submenu{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu,.ant-menu-submenu-inline{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-selected{color:#1890ff}.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}.ant-menu-submenu .ant-menu-sub{cursor:auto;transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-title-content{transition:color .3s}.ant-menu-item a{color:rgba(0,0,0,.85)}.ant-menu-item a:hover{color:#1890ff}.ant-menu-item a:before{background-color:initial;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-menu-item>.ant-badge a{color:rgba(0,0,0,.85)}.ant-menu-item>.ant-badge a:hover{color:#1890ff}.ant-menu-item-divider{border:solid #f0f0f0;border-width:1px 0 0;line-height:0;overflow:hidden}.ant-menu-item-divider-dashed{border-style:dashed}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu{margin-top:-1px}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu .ant-menu-submenu-title:hover{background-color:initial}.ant-menu-item-selected,.ant-menu-item-selected a,.ant-menu-item-selected a:hover{color:#1890ff}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #f0f0f0}.ant-menu-vertical-right{border-left:1px solid #f0f0f0}.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub,.ant-menu-vertical.ant-menu-sub{border-right:0;max-height:calc(100vh - 100px);min-width:160px;overflow:hidden;padding:0}.ant-menu-vertical-left.ant-menu-sub:not([class*=-active]),.ant-menu-vertical-right.ant-menu-sub:not([class*=-active]),.ant-menu-vertical.ant-menu-sub:not([class*=-active]){overflow-x:hidden;overflow-y:auto}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item,.ant-menu-vertical.ant-menu-sub .ant-menu-item{border-right:0;left:0;margin-left:0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical.ant-menu-sub .ant-menu-item:after{border-right:0}.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:0 0}.ant-menu-horizontal.ant-menu-sub{min-width:114px}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu-title{transition:border-color .3s,background .3s}.ant-menu-item,.ant-menu-submenu-title{cursor:pointer;display:block;margin:0;padding:0 20px;position:relative;transition:border-color .3s,background .3s,padding .3s cubic-bezier(.645,.045,.355,1);white-space:nowrap}.ant-menu-item .ant-menu-item-icon,.ant-menu-item .anticon,.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-submenu-title .anticon{font-size:14px;min-width:14px;transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1),color .3s}.ant-menu-item .ant-menu-item-icon+span,.ant-menu-item .anticon+span,.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu-submenu-title .anticon+span{margin-left:10px;opacity:1;transition:opacity .3s cubic-bezier(.645,.045,.355,1),margin .3s,color .3s}.ant-menu-item .ant-menu-item-icon.svg,.ant-menu-submenu-title .ant-menu-item-icon.svg{vertical-align:-.125em}.ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-right:0}.ant-menu-item:not(.ant-menu-item-disabled):focus-visible,.ant-menu-submenu-title:not(.ant-menu-item-disabled):focus-visible{box-shadow:0 0 0 2px #bae7ff}.ant-menu>.ant-menu-item-divider{margin:1px 0;padding:0}.ant-menu-submenu-popup{background:transparent;border-radius:2px;box-shadow:none;position:absolute;transform-origin:0 0;z-index:1050}.ant-menu-submenu-popup:before{bottom:0;content:" ";height:100%;left:0;opacity:.0001;position:absolute;right:0;top:-7px;width:100%;z-index:-1}.ant-menu-submenu-placement-rightTop:before{left:-7px;top:0}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:2px}.ant-menu-submenu>.ant-menu-submenu-title:after{transition:transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-popup>.ant-menu{background-color:#fff}.ant-menu-submenu-arrow,.ant-menu-submenu-expand-icon{color:rgba(0,0,0,.85);position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:transform .3s cubic-bezier(.645,.045,.355,1);width:10px}.ant-menu-submenu-arrow:after,.ant-menu-submenu-arrow:before{background-color:currentcolor;border-radius:2px;content:"";height:1.5px;position:absolute;transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);width:6px}.ant-menu-submenu-arrow:before{transform:rotate(45deg) translateY(-2.5px)}.ant-menu-submenu-arrow:after{transform:rotate(-45deg) translateY(2.5px)}.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-expand-icon{color:#1890ff}.ant-menu-inline-collapsed .ant-menu-submenu-arrow:before,.ant-menu-submenu-inline .ant-menu-submenu-arrow:before{transform:rotate(-45deg) translateX(2.5px)}.ant-menu-inline-collapsed .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline .ant-menu-submenu-arrow:after{transform:rotate(45deg) translateX(-2.5px)}.ant-menu-submenu-horizontal .ant-menu-submenu-arrow{display:none}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow{transform:translateY(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after{transform:rotate(-45deg) translateX(-2.5px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{transform:rotate(45deg) translateX(2.5px)}.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected{color:#1890ff}.ant-menu-horizontal{border:0;border-bottom:1px solid #f0f0f0;box-shadow:none;line-height:46px}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu{margin-bottom:0;margin-top:-1px;padding:0 20px}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover{color:#1890ff}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover:after{border-bottom:2px solid #1890ff}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{display:inline-block;position:relative;top:1px;vertical-align:bottom}.ant-menu-horizontal>.ant-menu-item:after,.ant-menu-horizontal>.ant-menu-submenu:after{border-bottom:2px solid transparent;bottom:0;content:"";left:20px;position:absolute;right:20px;transition:border-color .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-horizontal>.ant-menu-submenu>.ant-menu-submenu-title{padding:0}.ant-menu-horizontal>.ant-menu-item a{color:rgba(0,0,0,.85)}.ant-menu-horizontal>.ant-menu-item a:hover{color:#1890ff}.ant-menu-horizontal>.ant-menu-item a:before{bottom:-2px}.ant-menu-horizontal>.ant-menu-item-selected a{color:#1890ff}.ant-menu-horizontal:after{clear:both;content:"\20";display:block;height:0}.ant-menu-inline .ant-menu-item,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item{position:relative}.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after{border-right:3px solid #1890ff;bottom:0;content:"";opacity:0;position:absolute;right:0;top:0;transform:scaleY(.0001);transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical-right .ant-menu-submenu-title{height:40px;line-height:40px;margin-bottom:4px;margin-top:4px;overflow:hidden;padding:0 16px;text-overflow:ellipsis}.ant-menu-inline .ant-menu-submenu,.ant-menu-vertical .ant-menu-submenu,.ant-menu-vertical-left .ant-menu-submenu,.ant-menu-vertical-right .ant-menu-submenu{padding-bottom:.02px}.ant-menu-inline .ant-menu-item:not(:last-child),.ant-menu-vertical .ant-menu-item:not(:last-child),.ant-menu-vertical-left .ant-menu-item:not(:last-child),.ant-menu-vertical-right .ant-menu-item:not(:last-child){margin-bottom:8px}.ant-menu-inline>.ant-menu-item,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline{width:100%}.ant-menu-inline .ant-menu-item-selected:after,.ant-menu-inline .ant-menu-selected:after{opacity:1;transform:scaleY(1);transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title{width:calc(100% + 1px)}.ant-menu-inline .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline.ant-menu-root .ant-menu-item,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title{align-items:center;display:flex;transition:border-color .3s,background .3s,padding .1s cubic-bezier(.215,.61,.355,1)}.ant-menu-inline.ant-menu-root .ant-menu-item>.ant-menu-title-content,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>.ant-menu-title-content{flex:auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ant-menu-inline.ant-menu-root .ant-menu-item>*,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>*{flex:none}.ant-menu.ant-menu-inline-collapsed{width:80px}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title{left:0;padding:0 calc(50% - 8px);text-overflow:clip}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:0}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{font-size:16px;line-height:40px;margin:0}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span{display:inline-block;opacity:0}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed .anticon{display:inline-block}.ant-menu.ant-menu-inline-collapsed-tooltip{pointer-events:none}.ant-menu.ant-menu-inline-collapsed-tooltip .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed-tooltip .anticon{display:none}.ant-menu.ant-menu-inline-collapsed-tooltip a{color:hsla(0,0%,100%,.85)}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-group-title{overflow:hidden;padding-left:4px;padding-right:4px;text-overflow:ellipsis;white-space:nowrap}.ant-menu-item-group-list{margin:0;padding:0}.ant-menu-item-group-list .ant-menu-item,.ant-menu-item-group-list .ant-menu-submenu-title{padding:0 16px 0 28px}.ant-menu-root.ant-menu-inline,.ant-menu-root.ant-menu-vertical,.ant-menu-root.ant-menu-vertical-left,.ant-menu-root.ant-menu-vertical-right{box-shadow:none}.ant-menu-root.ant-menu-inline-collapsed .ant-menu-item>.ant-menu-inline-collapsed-noicon,.ant-menu-root.ant-menu-inline-collapsed .ant-menu-submenu .ant-menu-submenu-title>.ant-menu-inline-collapsed-noicon{font-size:16px;text-align:center}.ant-menu-sub.ant-menu-inline{background:#fafafa;border-radius:0;box-shadow:none;padding:0}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px;list-style-position:inside;list-style-type:disc}.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:32px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{background:none;color:rgba(0,0,0,.25)!important;cursor:not-allowed}.ant-menu-item-disabled:after,.ant-menu-submenu-disabled:after{border-color:transparent!important}.ant-menu-item-disabled a,.ant-menu-submenu-disabled a{color:rgba(0,0,0,.25)!important;pointer-events:none}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(0,0,0,.25)!important;cursor:not-allowed}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:rgba(0,0,0,.25)!important}.ant-layout-header .ant-menu{line-height:inherit}.ant-menu-inline-collapsed-tooltip a,.ant-menu-inline-collapsed-tooltip a:hover{color:#fff}.ant-menu-light .ant-menu-item-active,.ant-menu-light .ant-menu-item:hover,.ant-menu-light .ant-menu-submenu-active,.ant-menu-light .ant-menu-submenu-title:hover,.ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}.ant-menu.ant-menu-root:focus-visible{box-shadow:0 0 0 2px #096dd9}.ant-menu-dark .ant-menu-item:focus-visible,.ant-menu-dark .ant-menu-submenu-title:focus-visible{box-shadow:0 0 0 2px #096dd9}.ant-menu-dark .ant-menu-sub,.ant-menu.ant-menu-dark,.ant-menu.ant-menu-dark .ant-menu-sub{background:#001529;color:hsla(0,0%,100%,.65)}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:.45;transition:all .3s}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark.ant-menu-submenu-popup{background:transparent}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#000c17}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{border-color:#001529;border-bottom:0;margin-top:0;padding:0 20px;top:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover{background-color:#1890ff}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item>a:before{bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a,.ant-menu-dark .ant-menu-item>span>a{color:hsla(0,0%,100%,.65)}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item{border-right:0;left:0;margin-left:0}.ant-menu-dark.ant-menu-inline .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item:after{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title{width:100%}.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{background-color:initial;color:#fff}.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-item-active>span>a,.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-item:hover>span>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-active>span>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-open>span>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-selected>span>a,.ant-menu-dark .ant-menu-submenu-title:hover>a,.ant-menu-dark .ant-menu-submenu-title:hover>span>a{color:#fff}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow{opacity:1}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:initial}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#1890ff}.ant-menu-dark .ant-menu-item-selected{border-right:0;color:#fff}.ant-menu-dark .ant-menu-item-selected:after{border-right:0}.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon,.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon+span,.ant-menu-dark .ant-menu-item-selected .anticon,.ant-menu-dark .ant-menu-item-selected .anticon+span,.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover,.ant-menu-dark .ant-menu-item-selected>span>a,.ant-menu-dark .ant-menu-item-selected>span>a:hover{color:#fff}.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-item-disabled>span>a,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-submenu-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled>span>a{color:hsla(0,0%,100%,.35)!important;opacity:.8}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:hsla(0,0%,100%,.35)!important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:hsla(0,0%,100%,.35)!important}.ant-menu.ant-menu-rtl{direction:rtl;text-align:right}.ant-menu-rtl .ant-menu-item-group-title{text-align:right}.ant-menu-rtl.ant-menu-inline,.ant-menu-rtl.ant-menu-vertical{border-left:1px solid #f0f0f0;border-right:none}.ant-menu-rtl.ant-menu-dark.ant-menu-inline,.ant-menu-rtl.ant-menu-dark.ant-menu-vertical{border-left:none}.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:top right}.ant-menu-rtl .ant-menu-item .ant-menu-item-icon,.ant-menu-rtl .ant-menu-item .anticon,.ant-menu-rtl .ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title .anticon{margin-left:10px;margin-right:auto}.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-left:0}.ant-menu-submenu-rtl.ant-menu-submenu-popup{transform-origin:100% 0}.ant-menu-rtl .ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow{left:16px;right:auto}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{transform:rotate(-45deg) translateY(-2px)}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{transform:rotate(45deg) translateY(2px)}.ant-menu-rtl.ant-menu-inline .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item:after{left:0;right:auto}.ant-menu-rtl.ant-menu-inline .ant-menu-item,.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical .ant-menu-item,.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title{text-align:right}.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title{padding-left:34px;padding-right:0}.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title{padding-left:34px;padding-right:16px}.ant-menu-rtl.ant-menu-inline-collapsed.ant-menu-vertical .ant-menu-submenu-title{padding:0 calc(50% - 8px)}.ant-menu-rtl .ant-menu-item-group-list .ant-menu-item,.ant-menu-rtl .ant-menu-item-group-list .ant-menu-submenu-title{padding:0 28px 0 16px}.ant-menu-sub.ant-menu-inline{border:0}.ant-menu-rtl.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:0;padding-right:32px}.ant-tooltip{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;max-width:250px;padding:0;position:absolute;visibility:visible;width:-moz-max-content;width:max-content;width:intrinsic;z-index:1070}.ant-tooltip-content{position:relative}.ant-tooltip-hidden{display:none}.ant-tooltip-placement-top,.ant-tooltip-placement-topLeft,.ant-tooltip-placement-topRight{padding-bottom:14.3137085px}.ant-tooltip-placement-right,.ant-tooltip-placement-rightBottom,.ant-tooltip-placement-rightTop{padding-left:14.3137085px}.ant-tooltip-placement-bottom,.ant-tooltip-placement-bottomLeft,.ant-tooltip-placement-bottomRight{padding-top:14.3137085px}.ant-tooltip-placement-left,.ant-tooltip-placement-leftBottom,.ant-tooltip-placement-leftTop{padding-right:14.3137085px}.ant-tooltip-inner{word-wrap:break-word;background-color:rgba(0,0,0,.75);border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);color:#fff;min-height:32px;min-width:30px;padding:6px 8px;text-align:left;text-decoration:none}.ant-tooltip-arrow{background:transparent;display:block;height:22px;overflow:hidden;pointer-events:none;position:absolute;width:22px;z-index:2}.ant-tooltip-arrow-content{--antd-arrow-background-color:linear-gradient(to right bottom,rgba(0,0,0,.65),rgba(0,0,0,.75));border-radius:0 0 2px;bottom:0;content:"";display:block;height:11.3137085px;left:0;margin:auto;pointer-events:auto;pointer-events:none;position:absolute;right:0;top:0;width:11.3137085px}.ant-tooltip-arrow-content:before{background:var(--antd-arrow-background-color);background-position:-10px -10px;background-repeat:no-repeat;-webkit-clip-path:inset(33% 33%);clip-path:inset(33% 33%);-webkit-clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");content:"";height:33.9411255px;left:-11.3137085px;position:absolute;top:-11.3137085px;width:33.9411255px}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:0;transform:translateY(100%)}.ant-tooltip-placement-top .ant-tooltip-arrow-content,.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-topRight .ant-tooltip-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-11px) rotate(45deg)}.ant-tooltip-placement-top .ant-tooltip-arrow{left:50%;transform:translateY(100%) translateX(-50%)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow{left:0;transform:translateX(-100%)}.ant-tooltip-placement-right .ant-tooltip-arrow-content,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content{box-shadow:-3px 3px 7px rgba(0,0,0,.07);transform:translateX(11px) rotate(135deg)}.ant-tooltip-placement-right .ant-tooltip-arrow{top:50%;transform:translateX(-100%) translateY(-50%)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow{right:0;transform:translateX(100%)}.ant-tooltip-placement-left .ant-tooltip-arrow-content,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content{box-shadow:3px -3px 7px rgba(0,0,0,.07);transform:translateX(-11px) rotate(315deg)}.ant-tooltip-placement-left .ant-tooltip-arrow{top:50%;transform:translateX(100%) translateY(-50%)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:0;transform:translateY(-100%)}.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content{box-shadow:-3px -3px 7px rgba(0,0,0,.07);transform:translateY(11px) rotate(225deg)}.ant-tooltip-placement-bottom .ant-tooltip-arrow{left:50%;transform:translateY(-100%) translateX(-50%)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-tooltip-pink .ant-tooltip-inner{background-color:#eb2f96}.ant-tooltip-pink .ant-tooltip-arrow-content:before{background:#eb2f96}.ant-tooltip-magenta .ant-tooltip-inner{background-color:#eb2f96}.ant-tooltip-magenta .ant-tooltip-arrow-content:before{background:#eb2f96}.ant-tooltip-red .ant-tooltip-inner{background-color:#f5222d}.ant-tooltip-red .ant-tooltip-arrow-content:before{background:#f5222d}.ant-tooltip-volcano .ant-tooltip-inner{background-color:#fa541c}.ant-tooltip-volcano .ant-tooltip-arrow-content:before{background:#fa541c}.ant-tooltip-orange .ant-tooltip-inner{background-color:#fa8c16}.ant-tooltip-orange .ant-tooltip-arrow-content:before{background:#fa8c16}.ant-tooltip-yellow .ant-tooltip-inner{background-color:#fadb14}.ant-tooltip-yellow .ant-tooltip-arrow-content:before{background:#fadb14}.ant-tooltip-gold .ant-tooltip-inner{background-color:#faad14}.ant-tooltip-gold .ant-tooltip-arrow-content:before{background:#faad14}.ant-tooltip-cyan .ant-tooltip-inner{background-color:#13c2c2}.ant-tooltip-cyan .ant-tooltip-arrow-content:before{background:#13c2c2}.ant-tooltip-lime .ant-tooltip-inner{background-color:#a0d911}.ant-tooltip-lime .ant-tooltip-arrow-content:before{background:#a0d911}.ant-tooltip-green .ant-tooltip-inner{background-color:#52c41a}.ant-tooltip-green .ant-tooltip-arrow-content:before{background:#52c41a}.ant-tooltip-blue .ant-tooltip-inner{background-color:#1890ff}.ant-tooltip-blue .ant-tooltip-arrow-content:before{background:#1890ff}.ant-tooltip-geekblue .ant-tooltip-inner{background-color:#2f54eb}.ant-tooltip-geekblue .ant-tooltip-arrow-content:before{background:#2f54eb}.ant-tooltip-purple .ant-tooltip-inner{background-color:#722ed1}.ant-tooltip-purple .ant-tooltip-arrow-content:before{background:#722ed1}.ant-tooltip-rtl{direction:rtl}.ant-tooltip-rtl .ant-tooltip-inner{text-align:right}.ant-space{display:inline-flex}.ant-space-vertical{flex-direction:column}.ant-space-align-center{align-items:center}.ant-space-align-start{align-items:flex-start}.ant-space-align-end{align-items:flex-end}.ant-space-align-baseline{align-items:baseline}.ant-space-item:empty{display:none}.ant-space-compact{display:inline-flex}.ant-space-compact-block{display:flex;width:100%}.ant-space-compact-vertical{flex-direction:column}.ant-space-compact-rtl,.ant-space-rtl{direction:rtl}.ant-select-single .ant-select-selector{display:flex}.ant-select-single .ant-select-selector .ant-select-selection-search{bottom:0;left:11px;position:absolute;right:11px;top:0}.ant-select-single .ant-select-selector .ant-select-selection-search-input{width:100%}.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{line-height:30px;padding:0;transition:all .3s,visibility 0s}.ant-select-single .ant-select-selector .ant-select-selection-item{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-select-single .ant-select-selector .ant-select-selection-placeholder{pointer-events:none;transition:none}.ant-select-single .ant-select-selector .ant-select-selection-item:after,.ant-select-single .ant-select-selector .ant-select-selection-placeholder:after,.ant-select-single .ant-select-selector:after{content:"\a0";display:inline-block;visibility:hidden;width:0}.ant-select-single.ant-select-show-arrow .ant-select-selection-search{right:25px}.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-right:18px}.ant-select-single.ant-select-open .ant-select-selection-item{color:#bfbfbf}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{height:32px;padding:0 11px;width:100%}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{height:30px}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector:after{line-height:30px}.ant-select-single.ant-select-customize-input .ant-select-selector:after{display:none}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search{position:static;width:100%}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder{left:0;padding:0 11px;position:absolute;right:0}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder:after{display:none}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{height:40px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector:after{line-height:38px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:38px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{height:24px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector:after{line-height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selection-search{left:7px;right:7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{padding:0 7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:28px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-right:21px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{padding:0 11px}.ant-select-selection-overflow{display:flex;flex:auto;flex-wrap:wrap;max-width:100%;position:relative}.ant-select-selection-overflow-item{align-self:center;flex:none;max-width:100%}.ant-select-multiple .ant-select-selector{align-items:center;display:flex;flex-wrap:wrap;padding:1px 4px}.ant-select-show-search.ant-select-multiple .ant-select-selector{cursor:text}.ant-select-disabled.ant-select-multiple .ant-select-selector{background:#f5f5f5;cursor:not-allowed}.ant-select-multiple .ant-select-selector:after{content:"\a0";display:inline-block;line-height:24px;margin:2px 0;visibility:hidden;width:0}.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-right:24px}.ant-select-multiple .ant-select-selection-item{background:#f5f5f5;border:1px solid #f0f0f0;border-radius:2px;box-sizing:border-box;cursor:default;display:flex;flex:none;height:24px;line-height:22px;margin-bottom:2px;margin-top:2px;margin-inline-end:4px;max-width:100%;padding-inline-end:4px;padding-inline-start:8px;position:relative;transition:font-size .3s,line-height .3s,height .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-select-disabled.ant-select-multiple .ant-select-selection-item{border-color:#d9d9d9;color:#bfbfbf;cursor:not-allowed}.ant-select-multiple .ant-select-selection-item-content{display:inline-block;margin-right:4px;overflow:hidden;text-overflow:ellipsis;white-space:pre}.ant-select-multiple .ant-select-selection-item-remove{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;align-items:center;color:inherit;color:rgba(0,0,0,.45);cursor:pointer;display:inline-flex;font-size:10px;font-style:normal;font-weight:700;line-height:0;line-height:inherit;text-align:center;text-rendering:optimizelegibility;text-transform:none;vertical-align:-.125em}.ant-select-multiple .ant-select-selection-item-remove>*{line-height:1}.ant-select-multiple .ant-select-selection-item-remove svg{display:inline-block}.ant-select-multiple .ant-select-selection-item-remove:before{display:none}.ant-select-multiple .ant-select-selection-item-remove .ant-select-multiple .ant-select-selection-item-remove-icon{display:block}.ant-select-multiple .ant-select-selection-item-remove>.anticon{vertical-align:middle}.ant-select-multiple .ant-select-selection-item-remove:hover{color:rgba(0,0,0,.75)}.ant-select-multiple .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-search{margin-inline-start:0}.ant-select-multiple .ant-select-selection-search{margin-inline-start:7px;max-width:100%;position:relative}.ant-select-multiple .ant-select-selection-search-input,.ant-select-multiple .ant-select-selection-search-mirror{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;height:24px;line-height:24px;transition:all .3s}.ant-select-multiple .ant-select-selection-search-input{min-width:4.1px;width:100%}.ant-select-multiple .ant-select-selection-search-mirror{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.ant-select-multiple .ant-select-selection-placeholder{left:11px;position:absolute;right:11px;top:50%;transform:translateY(-50%);transition:all .3s}.ant-select-multiple.ant-select-lg .ant-select-selector:after{line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-item{height:32px;line-height:30px}.ant-select-multiple.ant-select-lg .ant-select-selection-search{height:32px;line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror{height:32px;line-height:30px}.ant-select-multiple.ant-select-sm .ant-select-selector:after{line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-item{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{height:16px;line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{left:7px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{margin-inline-start:3px}.ant-select-disabled .ant-select-selection-item-remove{display:none}.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{background-color:#fff;border-color:#ff4d4f!important}.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-focused .ant-select-selector,.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-open .ant-select-selector{border-color:#ff7875;border-right-width:1px;box-shadow:0 0 0 2px rgba(255,77,79,.2);outline:0}.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{background-color:#fff;border-color:#faad14!important}.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-focused .ant-select-selector,.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-open .ant-select-selector{border-color:#ffc53d;border-right-width:1px;box-shadow:0 0 0 2px rgba(250,173,20,.2);outline:0}.ant-select-status-error.ant-select-has-feedback .ant-select-clear,.ant-select-status-success.ant-select-has-feedback .ant-select-clear,.ant-select-status-validating.ant-select-has-feedback .ant-select-clear,.ant-select-status-warning.ant-select-has-feedback .ant-select-clear{right:32px}.ant-select-status-error.ant-select-has-feedback .ant-select-selection-selected-value,.ant-select-status-success.ant-select-has-feedback .ant-select-selection-selected-value,.ant-select-status-validating.ant-select-has-feedback .ant-select-selection-selected-value,.ant-select-status-warning.ant-select-has-feedback .ant-select-selection-selected-value{padding-right:42px}.ant-select{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-select:not(.ant-select-customize-input) .ant-select-selector{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;position:relative;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:pointer}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector{cursor:text}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:auto}.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{background:#f5f5f5;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-multiple.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{background:#f5f5f5}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:not-allowed}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;margin:0;outline:none;padding:0}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:#40a9ff;border-right-width:1px}.ant-select-selection-item{flex:1 1;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (-ms-high-contrast:none){.ant-select-selection-item,.ant-select-selection-item ::-ms-backdrop{flex:auto}}.ant-select-selection-placeholder{color:#bfbfbf;flex:1 1;overflow:hidden;pointer-events:none;text-overflow:ellipsis;white-space:nowrap}@media (-ms-high-contrast:none){.ant-select-selection-placeholder,.ant-select-selection-placeholder ::-ms-backdrop{flex:auto}}.ant-select-arrow{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;align-items:center;color:inherit;color:rgba(0,0,0,.25);display:inline-flex;display:flex;font-size:12px;font-style:normal;height:12px;line-height:0;line-height:1;margin-top:-6px;pointer-events:none;position:absolute;right:11px;text-align:center;text-rendering:optimizelegibility;text-transform:none;top:50%;vertical-align:-.125em}.ant-select-arrow>*{line-height:1}.ant-select-arrow svg{display:inline-block}.ant-select-arrow:before{display:none}.ant-select-arrow .ant-select-arrow-icon{display:block}.ant-select-arrow .anticon{transition:transform .3s;vertical-align:top}.ant-select-arrow .anticon>svg{vertical-align:top}.ant-select-arrow .anticon:not(.ant-select-suffix){pointer-events:auto}.ant-select-disabled .ant-select-arrow{cursor:not-allowed}.ant-select-arrow>:not(:last-child){margin-inline-end:8px}.ant-select-clear{background:#fff;color:rgba(0,0,0,.25);cursor:pointer;display:inline-block;font-size:12px;font-style:normal;height:12px;line-height:1;margin-top:-6px;opacity:0;position:absolute;right:11px;text-align:center;text-rendering:auto;text-transform:none;top:50%;transition:color .3s ease,opacity .15s ease;width:12px;z-index:1}.ant-select-clear:before{display:block}.ant-select-clear:hover{color:rgba(0,0,0,.45)}.ant-select:hover .ant-select-clear{opacity:1}.ant-select-dropdown{font-feature-settings:"tnum","tnum",;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;font-variant:normal;left:-9999px;line-height:1.5715;list-style:none;margin:0;outline:none;overflow:hidden;padding:4px 0;position:absolute;top:-9999px;z-index:1050}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpIn}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft{animation-name:antSlideDownIn}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpOut}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft{animation-name:antSlideDownOut}.ant-select-dropdown-hidden{display:none}.ant-select-dropdown-empty{color:rgba(0,0,0,.25)}.ant-select-item-empty{color:rgba(0,0,0,.85);color:rgba(0,0,0,.25)}.ant-select-item,.ant-select-item-empty{display:block;font-size:14px;font-weight:400;line-height:22px;min-height:32px;padding:5px 12px;position:relative}.ant-select-item{color:rgba(0,0,0,.85);cursor:pointer;transition:background .3s ease}.ant-select-item-group{color:rgba(0,0,0,.45);cursor:default;font-size:12px}.ant-select-item-option{display:flex}.ant-select-item-option-content{flex:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-select-item-option-state{flex:none}.ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:#f5f5f5}.ant-select-item-option-selected:not(.ant-select-item-option-disabled){background-color:#e6f7ff;color:rgba(0,0,0,.85);font-weight:600}.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state{color:#1890ff}.ant-select-item-option-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-item-option-disabled.ant-select-item-option-selected{background-color:#f5f5f5}.ant-select-item-option-grouped{padding-left:24px}.ant-select-lg{font-size:16px}.ant-select-borderless .ant-select-selector{background-color:initial!important;border-color:transparent!important;box-shadow:none!important}.ant-select.ant-select-in-form-item{width:100%}.ant-select-compact-item:not(.ant-select-compact-last-item){margin-right:-1px}.ant-select-compact-item:not(.ant-select-compact-last-item).ant-select-compact-item-rtl{margin-left:-1px;margin-right:0}.ant-select-compact-item.ant-select-focused>*,.ant-select-compact-item:active>*,.ant-select-compact-item:focus>*,.ant-select-compact-item:hover>*{z-index:2}.ant-select-compact-item[disabled]>*{z-index:0}.ant-select-compact-item:not(.ant-select-compact-first-item):not(.ant-select-compact-last-item).ant-select>.ant-select-selector{border-radius:0}.ant-select-compact-item.ant-select-compact-first-item.ant-select:not(.ant-select-compact-last-item):not(.ant-select-compact-item-rtl)>.ant-select-selector{border-bottom-right-radius:0;border-top-right-radius:0}.ant-select-compact-item.ant-select-compact-last-item.ant-select:not(.ant-select-compact-first-item):not(.ant-select-compact-item-rtl)>.ant-select-selector,.ant-select-compact-item.ant-select.ant-select-compact-first-item.ant-select-compact-item-rtl:not(.ant-select-compact-last-item)>.ant-select-selector{border-bottom-left-radius:0;border-top-left-radius:0}.ant-select-compact-item.ant-select.ant-select-compact-last-item.ant-select-compact-item-rtl:not(.ant-select-compact-first-item)>.ant-select-selector{border-bottom-right-radius:0;border-top-right-radius:0}.ant-select-rtl{direction:rtl}.ant-select-rtl .ant-select-arrow,.ant-select-rtl .ant-select-clear{left:11px;right:auto}.ant-select-dropdown-rtl{direction:rtl}.ant-select-dropdown-rtl .ant-select-item-option-grouped{padding-left:12px;padding-right:24px}.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-rtl.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-left:24px;padding-right:4px}.ant-select-rtl.ant-select-multiple .ant-select-selection-item{text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content{margin-left:4px;margin-right:0;text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-search-mirror{left:auto;right:0}.ant-select-rtl.ant-select-multiple .ant-select-selection-placeholder{left:auto;right:11px}.ant-select-rtl.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{right:7px}.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-placeholder{left:9px;right:0;text-align:right}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-search{left:25px;right:11px}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-left:18px;padding-right:0}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:6px}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-left:21px;padding-right:0}.ant-empty{font-size:14px;line-height:1.5715;margin:0 8px;text-align:center}.ant-empty-image{height:100px;margin-bottom:8px}.ant-empty-image img{height:100%}.ant-empty-image svg{height:100%;margin:auto}.ant-empty-footer{margin-top:16px}.ant-empty-normal{color:rgba(0,0,0,.25);margin:32px 0}.ant-empty-normal .ant-empty-image{height:40px}.ant-empty-small{color:rgba(0,0,0,.25);margin:8px 0}.ant-empty-small .ant-empty-image{height:35px}.ant-empty-img-default-ellipse{fill:#f5f5f5;fill-opacity:.8}.ant-empty-img-default-path-1{fill:#aeb8c2}.ant-empty-img-default-path-2{fill:url(#linearGradient-1)}.ant-empty-img-default-path-3{fill:#f5f5f7}.ant-empty-img-default-path-4,.ant-empty-img-default-path-5{fill:#dce0e6}.ant-empty-img-default-g{fill:#fff}.ant-empty-img-simple-ellipse{fill:#f5f5f5}.ant-empty-img-simple-g{stroke:#d9d9d9}.ant-empty-img-simple-path{fill:#fafafa}.ant-empty-rtl{direction:rtl}.ant-layout{background:#f0f2f5;display:flex;flex:auto;flex-direction:column;min-height:0}.ant-layout,.ant-layout *{box-sizing:border-box}.ant-layout.ant-layout-has-sider{flex-direction:row}.ant-layout.ant-layout-has-sider>.ant-layout,.ant-layout.ant-layout-has-sider>.ant-layout-content{width:0}.ant-layout-footer,.ant-layout-header{flex:0 0 auto}.ant-layout-header{background:#001529;color:rgba(0,0,0,.85);height:64px;line-height:64px;padding:0 50px}.ant-layout-footer{background:#f0f2f5;color:rgba(0,0,0,.85);font-size:14px;padding:24px 50px}.ant-layout-content{flex:auto;min-height:0}.ant-layout-sider{background:#001529;min-width:0;position:relative;transition:all .2s}.ant-layout-sider-children{height:100%;margin-top:-.1px;padding-top:.1px}.ant-layout-sider-children .ant-menu.ant-menu-inline-collapsed{width:auto}.ant-layout-sider-has-trigger{padding-bottom:48px}.ant-layout-sider-right{order:1}.ant-layout-sider-trigger{background:#002140;bottom:0;color:#fff;cursor:pointer;height:48px;line-height:48px;position:fixed;text-align:center;transition:all .2s;z-index:1}.ant-layout-sider-zero-width>*{overflow:hidden}.ant-layout-sider-zero-width-trigger{background:#001529;border-radius:0 2px 2px 0;color:#fff;cursor:pointer;font-size:18px;height:42px;line-height:42px;position:absolute;right:-36px;text-align:center;top:64px;transition:background .3s ease;width:36px;z-index:1}.ant-layout-sider-zero-width-trigger:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:all .3s}.ant-layout-sider-zero-width-trigger:hover:after{background:hsla(0,0%,100%,.1)}.ant-layout-sider-zero-width-trigger-right{border-radius:2px 0 0 2px;left:-36px}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger,.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{background:#fff;color:rgba(0,0,0,.85)}.ant-layout-rtl{direction:rtl}.ant-modal{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 auto;max-width:calc(100vw - 32px);padding:0 0 24px;pointer-events:none;position:relative;top:100px;width:auto}.ant-modal.ant-zoom-appear,.ant-modal.ant-zoom-enter{animation-duration:.3s;opacity:0;transform:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-modal-mask{background-color:rgba(0,0,0,.45);bottom:0;height:100%;left:0;position:fixed;right:0;top:0;z-index:1000}.ant-modal-mask-hidden{display:none}.ant-modal-wrap{bottom:0;left:0;outline:0;overflow:auto;position:fixed;right:0;top:0;z-index:1000}.ant-modal-title{word-wrap:break-word;color:rgba(0,0,0,.85);font-size:16px;font-weight:500;line-height:22px;margin:0}.ant-modal-content{background-clip:padding-box;background-color:#fff;border:0;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);pointer-events:auto;position:relative}.ant-modal-close{background:transparent;border:0;color:rgba(0,0,0,.45);cursor:pointer;font-weight:700;line-height:1;outline:0;padding:0;position:absolute;right:0;text-decoration:none;top:0;transition:color .3s;z-index:10}.ant-modal-close-x{display:block;font-size:16px;font-style:normal;height:54px;line-height:54px;text-align:center;text-rendering:auto;text-transform:none;width:54px}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-modal-header{background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0;color:rgba(0,0,0,.85);padding:16px 24px}.ant-modal-body{word-wrap:break-word;font-size:14px;line-height:1.5715;padding:24px}.ant-modal-footer{background:transparent;border-radius:0 0 2px 2px;border-top:1px solid #f0f0f0;padding:10px 16px;text-align:right}.ant-modal-footer .ant-btn+.ant-btn:not(.ant-dropdown-trigger){margin-bottom:0;margin-left:8px}.ant-modal-open{overflow:hidden}.ant-modal-centered{text-align:center}.ant-modal-centered:before{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.ant-modal-centered .ant-modal{display:inline-block;padding-bottom:0;text-align:left;top:0;vertical-align:middle}@media (max-width:767px){.ant-modal{margin:8px auto;max-width:calc(100vw - 16px)}.ant-modal-centered .ant-modal{flex:1 1}}.ant-modal-confirm .ant-modal-header{display:none}.ant-modal-confirm .ant-modal-body{padding:32px 32px 24px}.ant-modal-confirm-body-wrapper:before{content:"";display:table}.ant-modal-confirm-body-wrapper:after{clear:both;content:"";display:table}.ant-modal-confirm-body .ant-modal-confirm-title{color:rgba(0,0,0,.85);display:block;font-size:16px;font-weight:500;line-height:1.4;overflow:hidden}.ant-modal-confirm-body .ant-modal-confirm-content{color:rgba(0,0,0,.85);font-size:14px;margin-top:8px}.ant-modal-confirm-body>.anticon{float:left;font-size:22px;margin-right:16px}.ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:38px}.ant-modal-confirm .ant-modal-confirm-btns{margin-top:24px;text-align:right}.ant-modal-confirm .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-bottom:0;margin-left:8px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#ff4d4f}.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon,.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon{color:#faad14}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#52c41a}.ant-modal-confirm .ant-zoom-leave .ant-modal-confirm-btns{pointer-events:none}.ant-modal-wrap-rtl{direction:rtl}.ant-modal-wrap-rtl .ant-modal-close{left:0;right:auto}.ant-modal-wrap-rtl .ant-modal-footer{text-align:left}.ant-modal-wrap-rtl .ant-modal-footer .ant-btn+.ant-btn{margin-left:0;margin-right:8px}.ant-modal-wrap-rtl .ant-modal-confirm-body{direction:rtl}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon{float:right;margin-left:16px;margin-right:0}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:0;margin-right:38px}.ant-modal-wrap-rtl .ant-modal-confirm-btns{text-align:left}.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-left:0;margin-right:8px}.ant-modal-wrap-rtl.ant-modal-centered .ant-modal{text-align:right}.ant-switch{font-feature-settings:"tnum","tnum";background-color:rgba(0,0,0,.25);border:0;border-radius:100px;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;font-variant:tabular-nums;height:22px;line-height:1.5715;line-height:22px;list-style:none;margin:0;min-width:44px;padding:0;position:relative;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle}.ant-switch:focus{box-shadow:0 0 0 2px rgba(0,0,0,.1);outline:0}.ant-switch-checked:focus{box-shadow:0 0 0 2px #e6f7ff}.ant-switch:focus:hover{box-shadow:none}.ant-switch-checked{background-color:#1890ff}.ant-switch-disabled,.ant-switch-loading{cursor:not-allowed;opacity:.4}.ant-switch-disabled *,.ant-switch-loading *{box-shadow:none;cursor:not-allowed}.ant-switch-inner{color:#fff;display:block;font-size:12px;margin:0 7px 0 25px;transition:margin .2s}.ant-switch-checked .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-handle{height:18px;left:2px;top:2px;width:18px}.ant-switch-handle,.ant-switch-handle:before{position:absolute;transition:all .2s ease-in-out}.ant-switch-handle:before{background-color:#fff;border-radius:9px;bottom:0;box-shadow:0 2px 4px 0 rgba(0,35,11,.2);content:"";left:0;right:0;top:0}.ant-switch-checked .ant-switch-handle{left:calc(100% - 20px)}.ant-switch:not(.ant-switch-disabled):active .ant-switch-handle:before{left:0;right:-30%}.ant-switch:not(.ant-switch-disabled):active.ant-switch-checked .ant-switch-handle:before{left:-30%;right:0}.ant-switch-loading-icon.anticon{color:rgba(0,0,0,.65);position:relative;top:2px;vertical-align:top}.ant-switch-checked .ant-switch-loading-icon{color:#1890ff}.ant-switch-small{height:16px;line-height:16px;min-width:28px}.ant-switch-small .ant-switch-inner{font-size:12px;margin:0 5px 0 18px}.ant-switch-small .ant-switch-handle{height:12px;width:12px}.ant-switch-small .ant-switch-loading-icon{font-size:9px;top:1.5px}.ant-switch-small.ant-switch-checked .ant-switch-inner{margin:0 18px 0 5px}.ant-switch-small.ant-switch-checked .ant-switch-handle{left:calc(100% - 14px)}.ant-switch-rtl{direction:rtl}.ant-switch-rtl .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-rtl .ant-switch-handle{left:auto;right:2px}.ant-switch-rtl:not(.ant-switch-rtl-disabled):active .ant-switch-handle:before{left:-30%;right:0}.ant-switch-rtl:not(.ant-switch-rtl-disabled):active.ant-switch-checked .ant-switch-handle:before{left:0;right:-30%}.ant-switch-rtl.ant-switch-checked .ant-switch-inner{margin:0 7px 0 25px}.ant-switch-rtl.ant-switch-checked .ant-switch-handle{right:calc(100% - 20px)}.ant-switch-rtl.ant-switch-small.ant-switch-checked .ant-switch-handle{right:calc(100% - 14px)} +/*# sourceMappingURL=167.b63e9d2b.chunk.css.map*/ \ No newline at end of file diff --git a/build/static/css/167.b63e9d2b.chunk.css.map b/build/static/css/167.b63e9d2b.chunk.css.map new file mode 100644 index 0000000..a59ebbd --- /dev/null +++ b/build/static/css/167.b63e9d2b.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/167.b63e9d2b.chunk.css","mappings":"AAIA,gBAQE,mCAA6B,CAP7B,qBAAsB,CAGtB,qBAA0B,CAK1B,qBAA0B,CAC1B,cAAe,CALf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CALhB,QAAS,CACT,SAQF,CACA,yBACE,cACF,CACA,mBACE,YAAa,CACb,cAAe,CAGf,eAAgB,CAFhB,QAAS,CACT,SAEF,CACA,kBACE,qBAA0B,CAC1B,oBACF,CAOA,sFACE,qBACF,CACA,wCACE,YACF,CACA,0BAEE,qBAA0B,CAD1B,YAEF,CAKA,yGACE,eACF,CACA,oBACE,aACF,CACA,2BAEE,UAAW,CADX,aAEF,CACA,0BAEE,UAAW,CACX,UAAW,CAFX,aAGF,CACA,yBACE,WACF,CAMA,qKAEE,aAAc,CADd,gBAEF,CCxEA,sDACE,aACF,CACA,4DAEE,wBAAyB,CADzB,UAEF,CACA,cASE,mCAA6B,CAR7B,qBAAsB,CAGtB,qBAA0B,CAU1B,aAAc,CATd,cAAe,CACf,yBAA0B,CAM1B,YAAa,CALb,kBAAmB,CACnB,eAAgB,CANhB,QAAS,CACT,SAAU,CAOV,iBAAkB,CAClB,WAAY,CAEZ,YAEF,CACA,qBAIE,WAAY,CAIZ,WAAY,CAHZ,SAAU,CAEV,aAAe,CANf,iBAAkB,CAElB,OAAQ,CADR,QAAS,CAIT,aAGF,CACA,mBACE,iBACF,CACA,0CACE,cACF,CACA,wCACE,wBACF,CACA,6CACE,wBACF,CACA,iFAGE,YACF,CACA,qKAGE,2BACF,CACA,8KAGE,wBACF,CACA,oBAME,qBAAsB,CAHtB,aAAc,CAEd,mBAAoB,CAEpB,mBAAoB,CANpB,iBAAkB,CAGlB,kBAAmB,CAFnB,SAMF,CACA,2BAME,eAAgB,CAEhB,+BAAgC,CADhC,2BAA4B,CAG5B,gCAAiC,CACzB,wBAAyB,CACjC,qXAAsX,CAC9W,6WAA8W,CAJtX,UAAW,CAJX,mBAAoB,CAFpB,kBAAmB,CAFnB,iBAAkB,CAClB,iBAAkB,CAElB,kBAUF,CACA,yJAGE,WAAY,CACZ,0CAA+C,CAC/C,uBACF,CACA,gDACE,QAAS,CACT,wCACF,CACA,oDACE,SACF,CACA,qDACE,UACF,CACA,kKAIE,0CAA+C,CAD/C,gBAAiB,CAEjB,2CACF,CACA,mDACE,QAAS,CACT,4DACF,CACA,uDACE,SACF,CACA,wDACE,UACF,CACA,mBAOE,2BAA4B,CAD5B,qBAAsB,CAEtB,iBAAkB,CAElB,qGAAoH,CALpH,oBAAqB,CAHrB,QAAS,CAOT,YAAa,CANb,aAAc,CAFd,iBAAkB,CAGlB,eAOF,CACA,oCAEE,qBAA0B,CAD1B,gBAAiB,CAEjB,kBACF,CACA,iCAGE,sBAAuB,CACvB,eAAgB,CAHhB,iBAAkB,CAIlB,oBAAqB,CAHrB,YAIF,CACA,wEAEE,eACF,CACA,oCAEE,gBAAkB,CADlB,iBAEF,CACA,wBAGE,kBAAmB,CADnB,YAAa,CADb,iBAGF,CACA,6BAGE,cAAe,CADf,gBAAiB,CADjB,cAGF,CACA,iCACE,SACF,CACA,mCACE,aAAc,CACd,kBACF,CACA,yCACE,aACF,CACA,yCAIE,QAAS,CAET,UAAW,CADX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAKF,CACA,yDAEE,UAAW,CAGX,qBAA0B,CAI1B,cAAe,CAFf,cAAe,CADf,eAAmB,CAEnB,gBAAiB,CALjB,QAAS,CACT,gBAAiB,CAMjB,kBACF,CACA,2EAGE,wBAAyB,CADzB,aAEF,CACA,iUAME,wBACF,CACA,oQAIE,qBAA0B,CAC1B,kBACF,CACA,4RAKE,qBAAsB,CADtB,qBAA0B,CAE1B,kBACF,CACA,4QAIE,mBACF,CACA,yEAME,wBAAyB,CAJzB,UAAW,CAGX,aAAc,CAFd,YAAa,CACb,eAGF,CACA,uIAEE,iBAAkB,CAClB,SACF,CACA,mNAGE,qBAA0B,CAC1B,cAAe,CACf,iBAAkB,CAHlB,wBAIF,CACA,mCAGE,eAAgB,CAFhB,YAAa,CACb,SAEF,CACA,iCACE,kBACF,CACA,oCACE,iBACF,CACA,uDAGE,SAAU,CAEV,eAAgB,CADhB,cAAe,CAHf,iBAAkB,CAClB,KAAM,CAIN,oBACF,CACA,oOAGE,qBAAsB,CADtB,qBAA0B,CAE1B,kBACF,CACA,qEACE,aACF,CACA,skBAME,2BACF,CACA,4hBAME,6BACF,CACA,gSAGE,4BACF,CACA,2QAGE,8BACF,CACA,gIAGE,cAAe,CACf,sBACF,CACA,qBACE,kBACF,CACA,iHAEE,cAAe,CACf,mBACF,CACA,oEACE,aACF,CACA,iGAEE,gBAAiB,CADjB,iBAEF,CACA,mEAEE,kBACF,CAOA,klBAIE,yBACF,CACA,mPAKE,sBAAuB,CADvB,UAEF,CACA,mLAIE,kBAAmB,CADnB,UAEF,CACA,kBACE,aACF,CACA,sCAEE,MAAO,CADP,UAEF,CAKA,kKAEE,aAAc,CACd,gBACF,CACA,+DACE,uBACF,CAKA,yMAEE,gBACF,CACA,wRAKE,eAAgB,CADhB,cAEF,CACA,2KAGE,QAAS,CADT,UAEF,CACA,uPAEE,uBAAyB,CACzB,oBACF,CACA,mDAEE,iBAAkB,CADlB,kBAEF,CACA,yEAEE,MAAO,CAEP,aAAc,CADd,gBAAiB,CAFjB,UAIF,CC9YA,yHAEE,aACF,CACA,2CACE,kBACF,CAIA,iJAEE,aACF,CACA,iFACE,wBACF,CACA,2DACE,0BACF,CACA,iKAGE,aACF,CACA,oGAEE,wBAAyB,CADzB,UAEF,CACA,UAME,mCAA6B,CAQ7B,eAAgB,CAEhB,qGAAoH,CAfpH,qBAAsB,CAQtB,qBAA0B,CAC1B,cAAe,CANf,yBAA0B,CAC1B,kBAAmB,CAMnB,aAAc,CAEd,eAAgB,CANhB,QAAgB,CAQhB,YAAa,CAPb,SAAe,CAIf,eAAgB,CAKhB,6DACF,CAKA,iCAFE,UAAW,CADX,aAOF,CAJA,gBAEE,UAEF,CACA,sCACE,4BACF,CACA,0BAIE,eAAgB,CAFhB,QAAS,CACT,SAEF,CACA,mBACE,YACF,CACA,wBACE,SACF,CACA,0CAEE,YACF,CACA,2BAGE,qBAA0B,CAC1B,cAAe,CAHf,aAAc,CAId,kBAAmB,CAHnB,gBAAiB,CAIjB,kBACF,CACA,uCACE,wGACF,CACA,2CAEE,oJACF,CACA,2BACE,aACF,CACA,qDAEE,kBACF,CACA,gCACE,WAAe,CACf,mGACF,CACA,wBACE,oBACF,CACA,iBACE,qBACF,CACA,uBACE,aACF,CACA,wBAME,wBAA6B,CAF7B,QAAS,CAGT,UAAW,CAFX,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAMF,CACA,4BACE,qBACF,CACA,kCACE,aACF,CACA,uBAKE,oBAAqB,CAArB,oBAAqB,CAHrB,aAAc,CADd,eAKF,CACA,8BACE,mBACF,CACA,2EAEE,eACF,CACA,0JAGE,wBACF,CAIA,kFAEE,aACF,CACA,4DACE,wBACF,CACA,4DAGE,8BACF,CACA,yBACE,6BACF,CACA,2GAOE,cAAe,CAHf,8BAA+B,CAD/B,eAAgB,CAGhB,eAAgB,CADhB,SAGF,CACA,6KAGE,iBAAkB,CAClB,eACF,CACA,wJAKE,cAAe,CAFf,MAAO,CACP,aAEF,CACA,0KAGE,cACF,CACA,yTAME,oBACF,CACA,kCACE,eACF,CACA,iFAEE,0CACF,CACA,uCAOE,cAAe,CAJf,aAAc,CACd,QAAS,CACT,cAAe,CAHf,iBAAkB,CAMlB,qFAAiG,CAFjG,kBAGF,CACA,wIAKE,cAAe,CADf,cAAe,CAEf,2GACF,CACA,4JAIE,gBAAiB,CACjB,SAAU,CACV,0EACF,CACA,uFAEE,sBACF,CACA,4OAIE,cACF,CACA,6HAEE,4BACF,CACA,iCACE,YAAa,CACb,SACF,CACA,wBAGE,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAJhB,iBAAkB,CAKlB,oBAAqB,CAJrB,YAKF,CACA,+BAIE,QAAS,CAMT,WAAY,CAFZ,WAAY,CAHZ,MAAO,CAIP,aAAe,CARf,iBAAkB,CAElB,OAAQ,CADR,QAAS,CAKT,UAAW,CADX,UAKF,CACA,4CAEE,SAAU,CADV,KAEF,CACA,4BACE,qBAAsB,CACtB,iBACF,CACA,gDACE,uDACF,CACA,kCACE,qBACF,CACA,sDAME,qBAA0B,CAJ1B,iBAAkB,CAElB,UAAW,CADX,OAAQ,CAIR,0BAA2B,CAC3B,uDAA+D,CAH/D,UAIF,CACA,6DAKE,6BAA8B,CAC9B,iBAAkB,CAElB,UAAW,CAJX,YAAa,CAFb,iBAAkB,CAKlB,qLAAqN,CAJrN,SAMF,CACA,+BACE,0CACF,CACA,8BACE,0CACF,CACA,sJAEE,aACF,CACA,kHAEE,0CACF,CACA,gHAEE,0CACF,CACA,qDACE,YACF,CACA,+FACE,0BACF,CACA,qGACE,2CACF,CACA,sGACE,yCACF,CACA,qJAGE,aACF,CACA,qBAEE,QAAS,CACT,+BAAgC,CAChC,eAAgB,CAHhB,gBAIF,CACA,mHAGE,eAAgB,CADhB,eAAgB,CAEhB,cACF,CACA,kgBAQE,aACF,CACA,kjBAQE,+BACF,CACA,2EAIE,oBAAqB,CAFrB,iBAAkB,CAClB,OAAQ,CAER,qBACF,CACA,uFAME,mCAAoC,CAFpC,QAAS,CAIT,UAAW,CAHX,SAAU,CAHV,iBAAkB,CAClB,UAAW,CAIX,0DAEF,CACA,+DACE,SACF,CACA,sCACE,qBACF,CACA,4CACE,aACF,CACA,6CACE,WACF,CACA,+CACE,aACF,CACA,2BAEE,UAAW,CAEX,aAAc,CAHd,aAAc,CAEd,QAEF,CACA,iJAIE,iBACF,CACA,yKAQE,8BAA+B,CAD/B,QAAS,CAKT,UAAW,CAFX,SAAU,CANV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,uBAAyB,CAEzB,kGAEF,CACA,sUAQE,WAAY,CAKZ,gBAAiB,CAHjB,iBAAkB,CADlB,cAAe,CAGf,eAAgB,CADhB,cAAe,CAGf,sBACF,CACA,6JAIE,oBACF,CACA,qNAIE,iBACF,CACA,8YAQE,WAAY,CACZ,gBACF,CACA,gHAEE,kBACF,CACA,iBACE,UACF,CACA,yFAGE,SAAU,CADV,mBAAoB,CAEpB,oGACF,CACA,yEAEE,sBACF,CACA,4GAEE,kBACF,CACA,qGAGE,kBAAmB,CADnB,YAAa,CAEb,oFACF,CACA,qJAEE,SAAU,CACV,WAAY,CACZ,eAAgB,CAChB,sBACF,CACA,yGAEE,SACF,CACA,oCACE,UACF,CACA,gWAIE,MAAO,CACP,yBAA+B,CAC/B,kBACF,CACA,gcAIE,SACF,CACA,ozBASE,cAAe,CACf,gBAAiB,CAFjB,QAGF,CACA,41BAQE,oBAAqB,CACrB,SACF,CACA,qGAEE,oBACF,CACA,4CACE,mBACF,CACA,qHAEE,YACF,CACA,8CACE,yBACF,CACA,+DAGE,eAAgB,CADhB,gBAAiB,CADjB,iBAAkB,CAIlB,sBAAuB,CADvB,kBAEF,CACA,0BACE,QAAS,CACT,SACF,CACA,2FAEE,qBACF,CACA,6IAIE,eACF,CACA,+MAEE,cAAe,CACf,iBACF,CACA,8BAEE,kBAAmB,CAEnB,eAAgB,CAChB,eAAgB,CAJhB,SAKF,CACA,qHAEE,WAAY,CACZ,gBAAiB,CACjB,0BAA2B,CAC3B,oBACF,CACA,yDACE,iBACF,CACA,mDAGE,eAAgB,CADhB,+BAAqC,CAErC,kBACF,CACA,+DAEE,kCACF,CACA,uDAEE,+BAAqC,CACrC,mBACF,CACA,mGAEE,+BAAqC,CACrC,kBACF,CACA,gUAIE,oCACF,CACA,6BACE,mBACF,CACA,gFAEE,UACF,CACA,yOAKE,aACF,CACA,sCACE,4BACF,CACA,iGAEE,4BACF,CACA,2FAIE,kBAAmB,CADnB,yBAEF,CACA,2OAGE,WAAa,CACb,kBACF,CACA,6fAME,eACF,CACA,sCACE,sBACF,CACA,6CACE,kBACF,CACA,mCACE,eACF,CACA,uGAKE,oBAAqB,CACrB,eAAgB,CAHhB,YAAa,CACb,cAAe,CAFf,KAKF,CACA,wDACE,wBACF,CACA,2DACE,QACF,CACA,6IAIE,yBACF,CACA,6IAIE,cACF,CACA,yMAME,cAAe,CAFf,MAAO,CACP,aAEF,CACA,iOAIE,cACF,CACA,qGAEE,UACF,CACA,8OAOE,wBAA6B,CAD7B,UAEF,CACA,khBAYE,UACF,CACA,8gBAME,SACF,CACA,0mCAYE,eACF,CACA,oCACE,wBACF,CACA,+EACE,wBACF,CACA,uCAEE,cAAe,CADf,UAEF,CACA,6CACE,cACF,CAWA,0ZAEE,UACF,CACA,8GAEE,wBACF,CACA,qQAME,mCAA2C,CAC3C,UACF,CACA,iIAEE,mCACF,CACA,4XAIE,wCACF,CACA,uBACE,aAAc,CACd,gBACF,CACA,yCACE,gBACF,CACA,8DAGE,6BAA8B,CAD9B,iBAEF,CACA,0FAEE,gBACF,CACA,uYAME,0BACF,CACA,gMAKE,gBAAiB,CADjB,iBAEF,CACA,oSAIE,aACF,CACA,6CACE,uBACF,CACA,6WAKE,SAAU,CADV,UAEF,CACA,2SAGE,yCACF,CACA,wSAGE,uCACF,CACA,6NAKE,MAAO,CADP,UAEF,CACA,8aAQE,gBACF,CACA,sDAEE,iBAAkB,CADlB,eAEF,CACA,wDAEE,iBAAkB,CADlB,kBAEF,CACA,kFACE,yBACF,CACA,uHAEE,qBACF,CACA,8BACE,QACF,CACA,sEAEE,cAAe,CADf,kBAEF,CCn5BA,aASE,mCAA6B,CAR7B,qBAAsB,CAGtB,qBAA0B,CAQ1B,aAAc,CAPd,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CANhB,QAAS,CAcT,eAAgB,CAbhB,SAAU,CAOV,iBAAkB,CAOlB,kBAAmB,CAJnB,sBAAuB,CACvB,iBAAkB,CAClB,eAAgB,CAJhB,YAOF,CACA,qBACE,iBACF,CACA,oBACE,YACF,CACA,0FAGE,2BACF,CACA,gGAGE,yBACF,CACA,mGAGE,wBACF,CACA,6FAGE,0BACF,CACA,mBAOE,oBAAqB,CACrB,gCAAqC,CACrC,iBAAkB,CAClB,qGAAoH,CANpH,UAAW,CAFX,eAAgB,CADhB,cAAe,CAEf,eAAgB,CAEhB,eAAgB,CAChB,oBAKF,CACA,mBAOE,sBAAuB,CAJvB,aAAc,CAEd,WAAY,CACZ,eAAgB,CAEhB,mBAAoB,CAPpB,iBAAkB,CAGlB,UAAW,CAFX,SAOF,CACA,2BACE,8FAAyG,CAYzG,qBAAsB,CARtB,QAAS,CAMT,UAAW,CAJX,aAAc,CAEd,mBAAoB,CAHpB,MAAO,CAIP,WAAY,CAEZ,mBAAoB,CAEpB,mBAAoB,CAZpB,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAKN,kBAOF,CACA,kCAME,6CAA8C,CAE9C,+BAAgC,CADhC,2BAA4B,CAG5B,gCAAiC,CACzB,wBAAyB,CACjC,qXAAsX,CAC9W,6WAA8W,CAJtX,UAAW,CAJX,mBAAoB,CAFpB,kBAAmB,CAFnB,iBAAkB,CAClB,iBAAkB,CAElB,kBAUF,CACA,mJAGE,QAAS,CACT,0BACF,CACA,2KAGE,sCAA2C,CAC3C,yCACF,CACA,8CACE,QAAS,CACT,2CACF,CACA,kDACE,SACF,CACA,mDACE,UACF,CACA,yJAGE,MAAO,CACP,2BACF,CACA,iLAGE,uCAA4C,CAC5C,yCACF,CACA,gDACE,OAAQ,CACR,4CACF,CACA,mDACE,OACF,CACA,sDACE,UACF,CACA,sJAGE,OAAQ,CACR,0BACF,CACA,8KAGE,uCAA4C,CAC5C,0CACF,CACA,+CACE,OAAQ,CACR,2CACF,CACA,kDACE,OACF,CACA,qDACE,UACF,CACA,4JAGE,KAAM,CACN,2BACF,CACA,oLAGE,wCAA6C,CAC7C,yCACF,CACA,iDACE,QAAS,CACT,4CACF,CACA,qDACE,SACF,CACA,sDACE,UACF,CACA,qCACE,wBACF,CACA,oDACE,kBACF,CACA,wCACE,wBACF,CACA,uDACE,kBACF,CACA,oCACE,wBACF,CACA,mDACE,kBACF,CACA,wCACE,wBACF,CACA,uDACE,kBACF,CACA,uCACE,wBACF,CACA,sDACE,kBACF,CACA,uCACE,wBACF,CACA,sDACE,kBACF,CACA,qCACE,wBACF,CACA,oDACE,kBACF,CACA,qCACE,wBACF,CACA,oDACE,kBACF,CACA,qCACE,wBACF,CACA,oDACE,kBACF,CACA,sCACE,wBACF,CACA,qDACE,kBACF,CACA,qCACE,wBACF,CACA,oDACE,kBACF,CACA,yCACE,wBACF,CACA,wDACE,kBACF,CACA,uCACE,wBACF,CACA,sDACE,kBACF,CACA,iBACE,aACF,CACA,oCACE,gBACF,CC7QA,WACE,mBACF,CACA,oBACE,qBACF,CACA,wBACE,kBACF,CACA,uBACE,sBACF,CACA,qBACE,oBACF,CACA,0BACE,oBACF,CACA,sBACE,YACF,CACA,mBACE,mBACF,CACA,yBACE,YAAa,CACb,UACF,CACA,4BACE,qBACF,CAIA,sCACE,aACF,CCpCA,wCACE,YACF,CACA,qEAIE,QAAS,CACT,SAAU,CAJV,iBAAkB,CAElB,UAAW,CADX,KAIF,CACA,2EACE,UACF,CACA,6IAGE,gBAAiB,CADjB,SAAU,CAEV,gCACF,CACA,mEACE,iBAAkB,CAClB,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,0EAEE,mBAAoB,CADpB,eAEF,CACA,uMAME,aAAc,CAHd,oBAAqB,CAErB,iBAAkB,CADlB,OAGF,CACA,sEACE,UACF,CACA,+IAEE,kBACF,CACA,8DACE,aACF,CACA,yEAEE,WAAY,CACZ,cAAe,CAFf,UAGF,CACA,4GACE,WACF,CACA,+EACE,gBACF,CACA,yEACE,YACF,CACA,gGACE,eAAgB,CAChB,UACF,CACA,qGAGE,MAAO,CACP,cAAe,CAHf,iBAAkB,CAClB,OAGF,CACA,2GACE,YACF,CACA,uFACE,WACF,CACA,wUAGE,gBACF,CACA,sIACE,WACF,CACA,uFACE,WACF,CACA,wUAGE,gBACF,CACA,sIACE,WACF,CACA,+FAEE,QAAS,CADT,SAEF,CACA,uFACE,aACF,CACA,qHACE,UACF,CACA,6OAEE,kBACF,CACA,uFACE,cACF,CAKA,+BAEE,YAAa,CACb,SAAU,CACV,cAAe,CACf,cAAe,CAJf,iBAKF,CACA,oCAEE,iBAAkB,CADlB,SAAU,CAEV,cACF,CACA,0CAGE,kBAAmB,CAFnB,YAAa,CACb,cAAe,CAEf,eACF,CACA,iEACE,WACF,CACA,8DACE,kBAAmB,CACnB,kBACF,CACA,gDAME,aAAc,CALd,oBAAqB,CAGrB,gBAAiB,CADjB,YAAa,CAEb,iBAAkB,CAHlB,OAKF,CACA,iIAEE,kBACF,CACA,gDAUE,kBAAmB,CACnB,wBAAyB,CACzB,iBAAkB,CARlB,qBAAsB,CAStB,cAAe,CAXf,YAAa,CACb,SAAU,CAGV,WAAY,CAGZ,gBAAiB,CADjB,iBAAkB,CADlB,cAAe,CAYf,qBAAsB,CAdtB,cAAe,CAgBf,sBAAuB,CADvB,wBAAyB,CAnBzB,iBAAkB,CAalB,mDAAyD,CACzD,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBAIV,CACA,oEAEE,oBAAqB,CADrB,aAAc,CAEd,kBACF,CACA,wDACE,oBAAqB,CAC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CADlB,kBAEF,CACA,+JAGE,iBAAkB,CADlB,iBAEF,CACA,+DACE,gBACF,CACA,uEAEE,eAAgB,CADhB,cAAe,CAEf,gBACF,CACA,wEAEE,SAAU,CADV,OAEF,CACA,sEAEE,SAAU,CADV,UAEF,CACA,oFACE,SACF,CACA,2KAGE,QAAS,CADT,OAAQ,CAER,gBACF,CACA,qFAEE,SAAU,CADV,UAEF,CACA,6KAGE,iBAAkB,CADlB,eAEF,CACA,oIACE,SACF,CACA,2QAGE,iBAAkB,CADlB,eAEF,CCttBA,WAEE,cAAe,CACf,kBAAmB,CAFnB,YAAa,CAGb,iBACF,CACA,iBACE,YAAa,CACb,iBACF,CACA,qBACE,WACF,CACA,qBACE,WAAY,CACZ,WACF,CACA,kBACE,eACF,CACA,kBAEE,qBAA0B,CAD1B,aAEF,CACA,mCACE,WACF,CACA,iBAEE,qBAA0B,CAD1B,YAEF,CACA,kCACE,WACF,CACA,+BACE,YAAa,CACb,eACF,CACA,8BACE,YACF,CACA,8BACE,2BACF,CACA,8BACE,YACF,CAIA,4DACE,YACF,CACA,yBACE,SACF,CACA,8BACE,YACF,CACA,wBACE,cACF,CACA,2BACE,YACF,CACA,eACE,aACF,CCnEA,YAME,kBAAmB,CALnB,YAAa,CACb,SAAU,CACV,qBAAsB,CAEtB,YAEF,CACA,0BAEE,qBACF,CACA,iCACE,kBACF,CACA,kGAEE,OACF,CACA,sCAEE,aACF,CACA,mBAKE,kBAAmB,CAFnB,qBAA0B,CAF1B,WAAY,CAGZ,gBAAiB,CAFjB,cAIF,CACA,mBAIE,kBAAmB,CAFnB,qBAA0B,CAC1B,cAAe,CAFf,iBAIF,CACA,oBACE,SAAU,CAEV,YACF,CACA,kBAIE,kBAAmB,CADnB,WAAY,CAFZ,iBAAkB,CAIlB,kBACF,CACA,2BACE,WAAY,CACZ,gBAAkB,CAClB,gBACF,CACA,+DACE,UACF,CACA,8BACE,mBACF,CACA,wBACE,OACF,CACA,0BAQE,kBAAmB,CANnB,QAAS,CAGT,UAAW,CAIX,cAAe,CALf,WAAY,CAEZ,gBAAiB,CALjB,cAAe,CAMf,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","sources":["../node_modules/antd/es/breadcrumb/style/index.css","../node_modules/antd/es/dropdown/style/index.css","../node_modules/antd/es/menu/style/index.css","../node_modules/antd/es/tooltip/style/index.css","../node_modules/antd/es/space/style/index.css","../node_modules/antd/es/select/style/index.css","../node_modules/antd/es/empty/style/index.css","../node_modules/antd/es/layout/style/index.css","../node_modules/antd/es/modal/style/index.css","../node_modules/antd/es/switch/style/index.css"],"sourcesContent":["/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-breadcrumb {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-breadcrumb .anticon {\n font-size: 14px;\n}\n.ant-breadcrumb ol {\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-breadcrumb a {\n color: rgba(0, 0, 0, 0.45);\n transition: color 0.3s;\n}\n.ant-breadcrumb a:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-breadcrumb li:last-child {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-breadcrumb li:last-child a {\n color: rgba(0, 0, 0, 0.85);\n}\nli:last-child > .ant-breadcrumb-separator {\n display: none;\n}\n.ant-breadcrumb-separator {\n margin: 0 8px;\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-breadcrumb-link > .anticon + span,\n.ant-breadcrumb-link > .anticon + a {\n margin-left: 4px;\n}\n.ant-breadcrumb-overlay-link > .anticon {\n margin-left: 4px;\n}\n.ant-breadcrumb-rtl {\n direction: rtl;\n}\n.ant-breadcrumb-rtl::before {\n display: table;\n content: '';\n}\n.ant-breadcrumb-rtl::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-breadcrumb-rtl > span {\n float: right;\n}\n.ant-breadcrumb-rtl .ant-breadcrumb-link > .anticon + span,\n.ant-breadcrumb-rtl .ant-breadcrumb-link > .anticon + a {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link > .anticon {\n margin-right: 4px;\n margin-left: 0;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-dropdown-menu-item.ant-dropdown-menu-item-danger {\n color: #ff4d4f;\n}\n.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover {\n color: #fff;\n background-color: #ff4d4f;\n}\n.ant-dropdown {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: 1050;\n display: block;\n}\n.ant-dropdown::before {\n position: absolute;\n top: -4px;\n right: 0;\n bottom: -4px;\n left: -7px;\n z-index: -9999;\n opacity: 0.0001;\n content: ' ';\n}\n.ant-dropdown-wrap {\n position: relative;\n}\n.ant-dropdown-wrap .ant-btn > .anticon-down {\n font-size: 10px;\n}\n.ant-dropdown-wrap .anticon-down::before {\n transition: transform 0.2s;\n}\n.ant-dropdown-wrap-open .anticon-down::before {\n transform: rotate(180deg);\n}\n.ant-dropdown-hidden,\n.ant-dropdown-menu-hidden,\n.ant-dropdown-menu-submenu-hidden {\n display: none;\n}\n.ant-dropdown-show-arrow.ant-dropdown-placement-topLeft,\n.ant-dropdown-show-arrow.ant-dropdown-placement-top,\n.ant-dropdown-show-arrow.ant-dropdown-placement-topRight {\n padding-bottom: 15.3137085px;\n}\n.ant-dropdown-show-arrow.ant-dropdown-placement-bottomLeft,\n.ant-dropdown-show-arrow.ant-dropdown-placement-bottom,\n.ant-dropdown-show-arrow.ant-dropdown-placement-bottomRight {\n padding-top: 15.3137085px;\n}\n.ant-dropdown-arrow {\n position: absolute;\n z-index: 1;\n display: block;\n width: 11.3137085px;\n height: 11.3137085px;\n border-radius: 0 0 2px;\n pointer-events: none;\n}\n.ant-dropdown-arrow::before {\n position: absolute;\n top: -11.3137085px;\n left: -11.3137085px;\n width: 33.9411255px;\n height: 33.9411255px;\n background: #fff;\n background-repeat: no-repeat;\n background-position: -10px -10px;\n content: '';\n -webkit-clip-path: inset(33% 33%);\n clip-path: inset(33% 33%);\n -webkit-clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n}\n.ant-dropdown-placement-top > .ant-dropdown-arrow,\n.ant-dropdown-placement-topLeft > .ant-dropdown-arrow,\n.ant-dropdown-placement-topRight > .ant-dropdown-arrow {\n bottom: 10px;\n box-shadow: 3px 3px 7px -3px rgba(0, 0, 0, 0.1);\n transform: rotate(45deg);\n}\n.ant-dropdown-placement-top > .ant-dropdown-arrow {\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n.ant-dropdown-placement-topLeft > .ant-dropdown-arrow {\n left: 16px;\n}\n.ant-dropdown-placement-topRight > .ant-dropdown-arrow {\n right: 16px;\n}\n.ant-dropdown-placement-bottom > .ant-dropdown-arrow,\n.ant-dropdown-placement-bottomLeft > .ant-dropdown-arrow,\n.ant-dropdown-placement-bottomRight > .ant-dropdown-arrow {\n top: 9.41421356px;\n box-shadow: 2px 2px 5px -2px rgba(0, 0, 0, 0.1);\n transform: rotate(-135deg) translateY(-0.5px);\n}\n.ant-dropdown-placement-bottom > .ant-dropdown-arrow {\n left: 50%;\n transform: translateX(-50%) rotate(-135deg) translateY(-0.5px);\n}\n.ant-dropdown-placement-bottomLeft > .ant-dropdown-arrow {\n left: 16px;\n}\n.ant-dropdown-placement-bottomRight > .ant-dropdown-arrow {\n right: 16px;\n}\n.ant-dropdown-menu {\n position: relative;\n margin: 0;\n padding: 4px 0;\n text-align: left;\n list-style-type: none;\n background-color: #fff;\n background-clip: padding-box;\n border-radius: 2px;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-dropdown-menu-item-group-title {\n padding: 5px 12px;\n color: rgba(0, 0, 0, 0.45);\n transition: all 0.3s;\n}\n.ant-dropdown-menu-submenu-popup {\n position: absolute;\n z-index: 1050;\n background: transparent;\n box-shadow: none;\n transform-origin: 0 0;\n}\n.ant-dropdown-menu-submenu-popup ul,\n.ant-dropdown-menu-submenu-popup li {\n list-style: none;\n}\n.ant-dropdown-menu-submenu-popup ul {\n margin-right: 0.3em;\n margin-left: 0.3em;\n}\n.ant-dropdown-menu-item {\n position: relative;\n display: flex;\n align-items: center;\n}\n.ant-dropdown-menu-item-icon {\n min-width: 12px;\n margin-right: 8px;\n font-size: 12px;\n}\n.ant-dropdown-menu-title-content {\n flex: auto;\n}\n.ant-dropdown-menu-title-content > a {\n color: inherit;\n transition: all 0.3s;\n}\n.ant-dropdown-menu-title-content > a:hover {\n color: inherit;\n}\n.ant-dropdown-menu-title-content > a::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n content: '';\n}\n.ant-dropdown-menu-item,\n.ant-dropdown-menu-submenu-title {\n clear: both;\n margin: 0;\n padding: 5px 12px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 22px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-dropdown-menu-item-selected,\n.ant-dropdown-menu-submenu-title-selected {\n color: #1890ff;\n background-color: #e6f7ff;\n}\n.ant-dropdown-menu-item:hover,\n.ant-dropdown-menu-submenu-title:hover,\n.ant-dropdown-menu-item.ant-dropdown-menu-item-active,\n.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-active,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-active,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-active {\n background-color: #f5f5f5;\n}\n.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled,\n.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled:hover,\n.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled:hover,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled:hover,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n background-color: #fff;\n cursor: not-allowed;\n}\n.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled a,\n.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled a,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled a,\n.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled a {\n pointer-events: none;\n}\n.ant-dropdown-menu-item-divider,\n.ant-dropdown-menu-submenu-title-divider {\n height: 1px;\n margin: 4px 0;\n overflow: hidden;\n line-height: 0;\n background-color: #f0f0f0;\n}\n.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,\n.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon {\n position: absolute;\n right: 8px;\n}\n.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,\n.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon {\n margin-right: 0 !important;\n color: rgba(0, 0, 0, 0.45);\n font-size: 10px;\n font-style: normal;\n}\n.ant-dropdown-menu-item-group-list {\n margin: 0 8px;\n padding: 0;\n list-style: none;\n}\n.ant-dropdown-menu-submenu-title {\n padding-right: 24px;\n}\n.ant-dropdown-menu-submenu-vertical {\n position: relative;\n}\n.ant-dropdown-menu-submenu-vertical > .ant-dropdown-menu {\n position: absolute;\n top: 0;\n left: 100%;\n min-width: 100%;\n margin-left: 4px;\n transform-origin: 0 0;\n}\n.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,\n.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon {\n color: rgba(0, 0, 0, 0.25);\n background-color: #fff;\n cursor: not-allowed;\n}\n.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title {\n color: #1890ff;\n}\n.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,\n.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,\n.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottom,\n.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottom,\n.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight,\n.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight {\n animation-name: antSlideUpIn;\n}\n.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,\n.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,\n.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-top,\n.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-top,\n.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight,\n.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight {\n animation-name: antSlideDownIn;\n}\n.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,\n.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottom,\n.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight {\n animation-name: antSlideUpOut;\n}\n.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,\n.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-top,\n.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight {\n animation-name: antSlideDownOut;\n}\n.ant-dropdown-trigger > .anticon.anticon-down,\n.ant-dropdown-link > .anticon.anticon-down,\n.ant-dropdown-button > .anticon.anticon-down {\n font-size: 10px;\n vertical-align: baseline;\n}\n.ant-dropdown-button {\n white-space: nowrap;\n}\n.ant-dropdown-button.ant-btn-group > .ant-btn-loading,\n.ant-dropdown-button.ant-btn-group > .ant-btn-loading + .ant-btn {\n cursor: default;\n pointer-events: none;\n}\n.ant-dropdown-button.ant-btn-group > .ant-btn-loading + .ant-btn::before {\n display: block;\n}\n.ant-dropdown-button.ant-btn-group > .ant-btn:last-child:not(:first-child):not(.ant-btn-icon-only) {\n padding-right: 8px;\n padding-left: 8px;\n}\n.ant-dropdown-menu-dark,\n.ant-dropdown-menu-dark .ant-dropdown-menu {\n background: #001529;\n}\n.ant-dropdown-menu-dark .ant-dropdown-menu-item,\n.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > a,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > .anticon + span > a {\n color: rgba(255, 255, 255, 0.65);\n}\n.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow::after,\n.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow::after,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > a .ant-dropdown-menu-submenu-arrow::after,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > .anticon + span > a .ant-dropdown-menu-submenu-arrow::after {\n color: rgba(255, 255, 255, 0.65);\n}\n.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,\n.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > a:hover,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item > .anticon + span > a:hover {\n color: #fff;\n background: transparent;\n}\n.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,\n.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected > a {\n color: #fff;\n background: #1890ff;\n}\n.ant-dropdown-rtl {\n direction: rtl;\n}\n.ant-dropdown-rtl.ant-dropdown::before {\n right: -7px;\n left: 0;\n}\n.ant-dropdown-menu.ant-dropdown-menu-rtl {\n direction: rtl;\n text-align: right;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item-group-title,\n.ant-dropdown-menu-submenu-rtl .ant-dropdown-menu-item-group-title {\n direction: rtl;\n text-align: right;\n}\n.ant-dropdown-menu-submenu-popup.ant-dropdown-menu-submenu-rtl {\n transform-origin: 100% 0;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li {\n text-align: right;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title {\n text-align: right;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item > .anticon:first-child,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title > .anticon:first-child,\n.ant-dropdown-rtl .ant-dropdown-menu-item > span > .anticon:first-child,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title > span > .anticon:first-child {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon {\n right: auto;\n left: 8px;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon {\n margin-left: 0 !important;\n transform: scaleX(-1);\n}\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-title {\n padding-right: 12px;\n padding-left: 24px;\n}\n.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical > .ant-dropdown-menu {\n right: 100%;\n left: 0;\n margin-right: 4px;\n margin-left: 0;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-menu-item-danger.ant-menu-item {\n color: #ff4d4f;\n}\n.ant-menu-item-danger.ant-menu-item:hover,\n.ant-menu-item-danger.ant-menu-item-active {\n color: #ff4d4f;\n}\n.ant-menu-item-danger.ant-menu-item:active {\n background: #fff1f0;\n}\n.ant-menu-item-danger.ant-menu-item-selected {\n color: #ff4d4f;\n}\n.ant-menu-item-danger.ant-menu-item-selected > a,\n.ant-menu-item-danger.ant-menu-item-selected > a:hover {\n color: #ff4d4f;\n}\n.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {\n background-color: #fff1f0;\n}\n.ant-menu-inline .ant-menu-item-danger.ant-menu-item::after {\n border-right-color: #ff4d4f;\n}\n.ant-menu-dark .ant-menu-item-danger.ant-menu-item,\n.ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover,\n.ant-menu-dark .ant-menu-item-danger.ant-menu-item > a {\n color: #ff4d4f;\n}\n.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {\n color: #fff;\n background-color: #ff4d4f;\n}\n.ant-menu {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n font-variant: tabular-nums;\n line-height: 1.5715;\n font-feature-settings: 'tnum';\n margin-bottom: 0;\n padding-left: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 0;\n text-align: left;\n list-style: none;\n background: #fff;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n transition: background 0.3s, width 0.3s cubic-bezier(0.2, 0, 0, 1) 0s;\n}\n.ant-menu::before {\n display: table;\n content: '';\n}\n.ant-menu::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-menu.ant-menu-root:focus-visible {\n box-shadow: 0 0 0 2px #bae7ff;\n}\n.ant-menu ul,\n.ant-menu ol {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-menu-overflow {\n display: flex;\n}\n.ant-menu-overflow-item {\n flex: none;\n}\n.ant-menu-hidden,\n.ant-menu-submenu-hidden {\n display: none;\n}\n.ant-menu-item-group-title {\n height: 1.5715;\n padding: 8px 16px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 1.5715;\n transition: all 0.3s;\n}\n.ant-menu-horizontal .ant-menu-submenu {\n transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-submenu,\n.ant-menu-submenu-inline {\n transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-submenu-selected {\n color: #1890ff;\n}\n.ant-menu-item:active,\n.ant-menu-submenu-title:active {\n background: #e6f7ff;\n}\n.ant-menu-submenu .ant-menu-sub {\n cursor: initial;\n transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-title-content {\n transition: color 0.3s;\n}\n.ant-menu-item a {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-menu-item a:hover {\n color: #1890ff;\n}\n.ant-menu-item a::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: transparent;\n content: '';\n}\n.ant-menu-item > .ant-badge a {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-menu-item > .ant-badge a:hover {\n color: #1890ff;\n}\n.ant-menu-item-divider {\n overflow: hidden;\n line-height: 0;\n border-color: #f0f0f0;\n border-style: solid;\n border-width: 1px 0 0;\n}\n.ant-menu-item-divider-dashed {\n border-style: dashed;\n}\n.ant-menu-horizontal .ant-menu-item,\n.ant-menu-horizontal .ant-menu-submenu {\n margin-top: -1px;\n}\n.ant-menu-horizontal > .ant-menu-item:hover,\n.ant-menu-horizontal > .ant-menu-item-active,\n.ant-menu-horizontal > .ant-menu-submenu .ant-menu-submenu-title:hover {\n background-color: transparent;\n}\n.ant-menu-item-selected {\n color: #1890ff;\n}\n.ant-menu-item-selected a,\n.ant-menu-item-selected a:hover {\n color: #1890ff;\n}\n.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {\n background-color: #e6f7ff;\n}\n.ant-menu-inline,\n.ant-menu-vertical,\n.ant-menu-vertical-left {\n border-right: 1px solid #f0f0f0;\n}\n.ant-menu-vertical-right {\n border-left: 1px solid #f0f0f0;\n}\n.ant-menu-vertical.ant-menu-sub,\n.ant-menu-vertical-left.ant-menu-sub,\n.ant-menu-vertical-right.ant-menu-sub {\n min-width: 160px;\n max-height: calc(100vh - 100px);\n padding: 0;\n overflow: hidden;\n border-right: 0;\n}\n.ant-menu-vertical.ant-menu-sub:not([class*='-active']),\n.ant-menu-vertical-left.ant-menu-sub:not([class*='-active']),\n.ant-menu-vertical-right.ant-menu-sub:not([class*='-active']) {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.ant-menu-vertical.ant-menu-sub .ant-menu-item,\n.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,\n.ant-menu-vertical-right.ant-menu-sub .ant-menu-item {\n left: 0;\n margin-left: 0;\n border-right: 0;\n}\n.ant-menu-vertical.ant-menu-sub .ant-menu-item::after,\n.ant-menu-vertical-left.ant-menu-sub .ant-menu-item::after,\n.ant-menu-vertical-right.ant-menu-sub .ant-menu-item::after {\n border-right: 0;\n}\n.ant-menu-vertical.ant-menu-sub > .ant-menu-item,\n.ant-menu-vertical-left.ant-menu-sub > .ant-menu-item,\n.ant-menu-vertical-right.ant-menu-sub > .ant-menu-item,\n.ant-menu-vertical.ant-menu-sub > .ant-menu-submenu,\n.ant-menu-vertical-left.ant-menu-sub > .ant-menu-submenu,\n.ant-menu-vertical-right.ant-menu-sub > .ant-menu-submenu {\n transform-origin: 0 0;\n}\n.ant-menu-horizontal.ant-menu-sub {\n min-width: 114px;\n}\n.ant-menu-horizontal .ant-menu-item,\n.ant-menu-horizontal .ant-menu-submenu-title {\n transition: border-color 0.3s, background 0.3s;\n}\n.ant-menu-item,\n.ant-menu-submenu-title {\n position: relative;\n display: block;\n margin: 0;\n padding: 0 20px;\n white-space: nowrap;\n cursor: pointer;\n transition: border-color 0.3s, background 0.3s, padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-item .ant-menu-item-icon,\n.ant-menu-submenu-title .ant-menu-item-icon,\n.ant-menu-item .anticon,\n.ant-menu-submenu-title .anticon {\n min-width: 14px;\n font-size: 14px;\n transition: font-size 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), margin 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), color 0.3s;\n}\n.ant-menu-item .ant-menu-item-icon + span,\n.ant-menu-submenu-title .ant-menu-item-icon + span,\n.ant-menu-item .anticon + span,\n.ant-menu-submenu-title .anticon + span {\n margin-left: 10px;\n opacity: 1;\n transition: opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), margin 0.3s, color 0.3s;\n}\n.ant-menu-item .ant-menu-item-icon.svg,\n.ant-menu-submenu-title .ant-menu-item-icon.svg {\n vertical-align: -0.125em;\n}\n.ant-menu-item.ant-menu-item-only-child > .anticon,\n.ant-menu-submenu-title.ant-menu-item-only-child > .anticon,\n.ant-menu-item.ant-menu-item-only-child > .ant-menu-item-icon,\n.ant-menu-submenu-title.ant-menu-item-only-child > .ant-menu-item-icon {\n margin-right: 0;\n}\n.ant-menu-item:not(.ant-menu-item-disabled):focus-visible,\n.ant-menu-submenu-title:not(.ant-menu-item-disabled):focus-visible {\n box-shadow: 0 0 0 2px #bae7ff;\n}\n.ant-menu > .ant-menu-item-divider {\n margin: 1px 0;\n padding: 0;\n}\n.ant-menu-submenu-popup {\n position: absolute;\n z-index: 1050;\n background: transparent;\n border-radius: 2px;\n box-shadow: none;\n transform-origin: 0 0;\n}\n.ant-menu-submenu-popup::before {\n position: absolute;\n top: -7px;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n opacity: 0.0001;\n content: ' ';\n}\n.ant-menu-submenu-placement-rightTop::before {\n top: 0;\n left: -7px;\n}\n.ant-menu-submenu > .ant-menu {\n background-color: #fff;\n border-radius: 2px;\n}\n.ant-menu-submenu > .ant-menu-submenu-title::after {\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-submenu-popup > .ant-menu {\n background-color: #fff;\n}\n.ant-menu-submenu-expand-icon,\n.ant-menu-submenu-arrow {\n position: absolute;\n top: 50%;\n right: 16px;\n width: 10px;\n color: rgba(0, 0, 0, 0.85);\n transform: translateY(-50%);\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-submenu-arrow::before,\n.ant-menu-submenu-arrow::after {\n position: absolute;\n width: 6px;\n height: 1.5px;\n background-color: currentcolor;\n border-radius: 2px;\n transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n content: '';\n}\n.ant-menu-submenu-arrow::before {\n transform: rotate(45deg) translateY(-2.5px);\n}\n.ant-menu-submenu-arrow::after {\n transform: rotate(-45deg) translateY(2.5px);\n}\n.ant-menu-submenu:hover > .ant-menu-submenu-title > .ant-menu-submenu-expand-icon,\n.ant-menu-submenu:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow {\n color: #1890ff;\n}\n.ant-menu-inline-collapsed .ant-menu-submenu-arrow::before,\n.ant-menu-submenu-inline .ant-menu-submenu-arrow::before {\n transform: rotate(-45deg) translateX(2.5px);\n}\n.ant-menu-inline-collapsed .ant-menu-submenu-arrow::after,\n.ant-menu-submenu-inline .ant-menu-submenu-arrow::after {\n transform: rotate(45deg) translateX(-2.5px);\n}\n.ant-menu-submenu-horizontal .ant-menu-submenu-arrow {\n display: none;\n}\n.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title > .ant-menu-submenu-arrow {\n transform: translateY(-2px);\n}\n.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {\n transform: rotate(-45deg) translateX(-2.5px);\n}\n.ant-menu-submenu-open.ant-menu-submenu-inline > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before {\n transform: rotate(45deg) translateX(2.5px);\n}\n.ant-menu-vertical .ant-menu-submenu-selected,\n.ant-menu-vertical-left .ant-menu-submenu-selected,\n.ant-menu-vertical-right .ant-menu-submenu-selected {\n color: #1890ff;\n}\n.ant-menu-horizontal {\n line-height: 46px;\n border: 0;\n border-bottom: 1px solid #f0f0f0;\n box-shadow: none;\n}\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu {\n margin-top: -1px;\n margin-bottom: 0;\n padding: 0 20px;\n}\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-active,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-active,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-open,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-open,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-selected,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected {\n color: #1890ff;\n}\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-active::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-active::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-open::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-open::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item-selected::after,\n.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected::after {\n border-bottom: 2px solid #1890ff;\n}\n.ant-menu-horizontal > .ant-menu-item,\n.ant-menu-horizontal > .ant-menu-submenu {\n position: relative;\n top: 1px;\n display: inline-block;\n vertical-align: bottom;\n}\n.ant-menu-horizontal > .ant-menu-item::after,\n.ant-menu-horizontal > .ant-menu-submenu::after {\n position: absolute;\n right: 20px;\n bottom: 0;\n left: 20px;\n border-bottom: 2px solid transparent;\n transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n content: '';\n}\n.ant-menu-horizontal > .ant-menu-submenu > .ant-menu-submenu-title {\n padding: 0;\n}\n.ant-menu-horizontal > .ant-menu-item a {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-menu-horizontal > .ant-menu-item a:hover {\n color: #1890ff;\n}\n.ant-menu-horizontal > .ant-menu-item a::before {\n bottom: -2px;\n}\n.ant-menu-horizontal > .ant-menu-item-selected a {\n color: #1890ff;\n}\n.ant-menu-horizontal::after {\n display: block;\n clear: both;\n height: 0;\n content: '\\20';\n}\n.ant-menu-vertical .ant-menu-item,\n.ant-menu-vertical-left .ant-menu-item,\n.ant-menu-vertical-right .ant-menu-item,\n.ant-menu-inline .ant-menu-item {\n position: relative;\n}\n.ant-menu-vertical .ant-menu-item::after,\n.ant-menu-vertical-left .ant-menu-item::after,\n.ant-menu-vertical-right .ant-menu-item::after,\n.ant-menu-inline .ant-menu-item::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n border-right: 3px solid #1890ff;\n transform: scaleY(0.0001);\n opacity: 0;\n transition: transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);\n content: '';\n}\n.ant-menu-vertical .ant-menu-item,\n.ant-menu-vertical-left .ant-menu-item,\n.ant-menu-vertical-right .ant-menu-item,\n.ant-menu-inline .ant-menu-item,\n.ant-menu-vertical .ant-menu-submenu-title,\n.ant-menu-vertical-left .ant-menu-submenu-title,\n.ant-menu-vertical-right .ant-menu-submenu-title,\n.ant-menu-inline .ant-menu-submenu-title {\n height: 40px;\n margin-top: 4px;\n margin-bottom: 4px;\n padding: 0 16px;\n overflow: hidden;\n line-height: 40px;\n text-overflow: ellipsis;\n}\n.ant-menu-vertical .ant-menu-submenu,\n.ant-menu-vertical-left .ant-menu-submenu,\n.ant-menu-vertical-right .ant-menu-submenu,\n.ant-menu-inline .ant-menu-submenu {\n padding-bottom: 0.02px;\n}\n.ant-menu-vertical .ant-menu-item:not(:last-child),\n.ant-menu-vertical-left .ant-menu-item:not(:last-child),\n.ant-menu-vertical-right .ant-menu-item:not(:last-child),\n.ant-menu-inline .ant-menu-item:not(:last-child) {\n margin-bottom: 8px;\n}\n.ant-menu-vertical > .ant-menu-item,\n.ant-menu-vertical-left > .ant-menu-item,\n.ant-menu-vertical-right > .ant-menu-item,\n.ant-menu-inline > .ant-menu-item,\n.ant-menu-vertical > .ant-menu-submenu > .ant-menu-submenu-title,\n.ant-menu-vertical-left > .ant-menu-submenu > .ant-menu-submenu-title,\n.ant-menu-vertical-right > .ant-menu-submenu > .ant-menu-submenu-title,\n.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {\n height: 40px;\n line-height: 40px;\n}\n.ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,\n.ant-menu-vertical .ant-menu-submenu-title {\n padding-right: 34px;\n}\n.ant-menu-inline {\n width: 100%;\n}\n.ant-menu-inline .ant-menu-selected::after,\n.ant-menu-inline .ant-menu-item-selected::after {\n transform: scaleY(1);\n opacity: 1;\n transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-menu-inline .ant-menu-item,\n.ant-menu-inline .ant-menu-submenu-title {\n width: calc(100% + 1px);\n}\n.ant-menu-inline .ant-menu-item-group-list .ant-menu-submenu-title,\n.ant-menu-inline .ant-menu-submenu-title {\n padding-right: 34px;\n}\n.ant-menu-inline.ant-menu-root .ant-menu-item,\n.ant-menu-inline.ant-menu-root .ant-menu-submenu-title {\n display: flex;\n align-items: center;\n transition: border-color 0.3s, background 0.3s, padding 0.1s cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n.ant-menu-inline.ant-menu-root .ant-menu-item > .ant-menu-title-content,\n.ant-menu-inline.ant-menu-root .ant-menu-submenu-title > .ant-menu-title-content {\n flex: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ant-menu-inline.ant-menu-root .ant-menu-item > *,\n.ant-menu-inline.ant-menu-root .ant-menu-submenu-title > * {\n flex: none;\n}\n.ant-menu.ant-menu-inline-collapsed {\n width: 80px;\n}\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title {\n left: 0;\n padding: 0 calc(50% - 16px / 2);\n text-overflow: clip;\n}\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .ant-menu-submenu-arrow,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .ant-menu-submenu-arrow,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-submenu-arrow {\n opacity: 0;\n}\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .anticon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .anticon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .anticon,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .anticon {\n margin: 0;\n font-size: 16px;\n line-height: 40px;\n}\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .ant-menu-item-icon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .ant-menu-item-icon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-item-icon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .ant-menu-item-icon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item .anticon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .anticon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-submenu > .ant-menu-submenu-title .anticon + span,\n.ant-menu.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title .anticon + span {\n display: inline-block;\n opacity: 0;\n}\n.ant-menu.ant-menu-inline-collapsed .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed .anticon {\n display: inline-block;\n}\n.ant-menu.ant-menu-inline-collapsed-tooltip {\n pointer-events: none;\n}\n.ant-menu.ant-menu-inline-collapsed-tooltip .ant-menu-item-icon,\n.ant-menu.ant-menu-inline-collapsed-tooltip .anticon {\n display: none;\n}\n.ant-menu.ant-menu-inline-collapsed-tooltip a {\n color: rgba(255, 255, 255, 0.85);\n}\n.ant-menu.ant-menu-inline-collapsed .ant-menu-item-group-title {\n padding-right: 4px;\n padding-left: 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-menu-item-group-list {\n margin: 0;\n padding: 0;\n}\n.ant-menu-item-group-list .ant-menu-item,\n.ant-menu-item-group-list .ant-menu-submenu-title {\n padding: 0 16px 0 28px;\n}\n.ant-menu-root.ant-menu-vertical,\n.ant-menu-root.ant-menu-vertical-left,\n.ant-menu-root.ant-menu-vertical-right,\n.ant-menu-root.ant-menu-inline {\n box-shadow: none;\n}\n.ant-menu-root.ant-menu-inline-collapsed .ant-menu-item > .ant-menu-inline-collapsed-noicon,\n.ant-menu-root.ant-menu-inline-collapsed .ant-menu-submenu .ant-menu-submenu-title > .ant-menu-inline-collapsed-noicon {\n font-size: 16px;\n text-align: center;\n}\n.ant-menu-sub.ant-menu-inline {\n padding: 0;\n background: #fafafa;\n border: 0;\n border-radius: 0;\n box-shadow: none;\n}\n.ant-menu-sub.ant-menu-inline > .ant-menu-item,\n.ant-menu-sub.ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title {\n height: 40px;\n line-height: 40px;\n list-style-position: inside;\n list-style-type: disc;\n}\n.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title {\n padding-left: 32px;\n}\n.ant-menu-item-disabled,\n.ant-menu-submenu-disabled {\n color: rgba(0, 0, 0, 0.25) !important;\n background: none;\n cursor: not-allowed;\n}\n.ant-menu-item-disabled::after,\n.ant-menu-submenu-disabled::after {\n border-color: transparent !important;\n}\n.ant-menu-item-disabled a,\n.ant-menu-submenu-disabled a {\n color: rgba(0, 0, 0, 0.25) !important;\n pointer-events: none;\n}\n.ant-menu-item-disabled > .ant-menu-submenu-title,\n.ant-menu-submenu-disabled > .ant-menu-submenu-title {\n color: rgba(0, 0, 0, 0.25) !important;\n cursor: not-allowed;\n}\n.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {\n background: rgba(0, 0, 0, 0.25) !important;\n}\n.ant-layout-header .ant-menu {\n line-height: inherit;\n}\n.ant-menu-inline-collapsed-tooltip a,\n.ant-menu-inline-collapsed-tooltip a:hover {\n color: #fff;\n}\n.ant-menu-light .ant-menu-item:hover,\n.ant-menu-light .ant-menu-item-active,\n.ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,\n.ant-menu-light .ant-menu-submenu-active,\n.ant-menu-light .ant-menu-submenu-title:hover {\n color: #1890ff;\n}\n.ant-menu.ant-menu-root:focus-visible {\n box-shadow: 0 0 0 2px #096dd9;\n}\n.ant-menu-dark .ant-menu-item:focus-visible,\n.ant-menu-dark .ant-menu-submenu-title:focus-visible {\n box-shadow: 0 0 0 2px #096dd9;\n}\n.ant-menu.ant-menu-dark,\n.ant-menu-dark .ant-menu-sub,\n.ant-menu.ant-menu-dark .ant-menu-sub {\n color: rgba(255, 255, 255, 0.65);\n background: #001529;\n}\n.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow {\n opacity: 0.45;\n transition: all 0.3s;\n}\n.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\n.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow::before {\n background: #fff;\n}\n.ant-menu-dark.ant-menu-submenu-popup {\n background: transparent;\n}\n.ant-menu-dark .ant-menu-inline.ant-menu-sub {\n background: #000c17;\n}\n.ant-menu-dark.ant-menu-horizontal {\n border-bottom: 0;\n}\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-item,\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-submenu {\n top: 0;\n margin-top: 0;\n padding: 0 20px;\n border-color: #001529;\n border-bottom: 0;\n}\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-item:hover {\n background-color: #1890ff;\n}\n.ant-menu-dark.ant-menu-horizontal > .ant-menu-item > a::before {\n bottom: 0;\n}\n.ant-menu-dark .ant-menu-item,\n.ant-menu-dark .ant-menu-item-group-title,\n.ant-menu-dark .ant-menu-item > a,\n.ant-menu-dark .ant-menu-item > span > a {\n color: rgba(255, 255, 255, 0.65);\n}\n.ant-menu-dark.ant-menu-inline,\n.ant-menu-dark.ant-menu-vertical,\n.ant-menu-dark.ant-menu-vertical-left,\n.ant-menu-dark.ant-menu-vertical-right {\n border-right: 0;\n}\n.ant-menu-dark.ant-menu-inline .ant-menu-item,\n.ant-menu-dark.ant-menu-vertical .ant-menu-item,\n.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,\n.ant-menu-dark.ant-menu-vertical-right .ant-menu-item {\n left: 0;\n margin-left: 0;\n border-right: 0;\n}\n.ant-menu-dark.ant-menu-inline .ant-menu-item::after,\n.ant-menu-dark.ant-menu-vertical .ant-menu-item::after,\n.ant-menu-dark.ant-menu-vertical-left .ant-menu-item::after,\n.ant-menu-dark.ant-menu-vertical-right .ant-menu-item::after {\n border-right: 0;\n}\n.ant-menu-dark.ant-menu-inline .ant-menu-item,\n.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title {\n width: 100%;\n}\n.ant-menu-dark .ant-menu-item:hover,\n.ant-menu-dark .ant-menu-item-active,\n.ant-menu-dark .ant-menu-submenu-active,\n.ant-menu-dark .ant-menu-submenu-open,\n.ant-menu-dark .ant-menu-submenu-selected,\n.ant-menu-dark .ant-menu-submenu-title:hover {\n color: #fff;\n background-color: transparent;\n}\n.ant-menu-dark .ant-menu-item:hover > a,\n.ant-menu-dark .ant-menu-item-active > a,\n.ant-menu-dark .ant-menu-submenu-active > a,\n.ant-menu-dark .ant-menu-submenu-open > a,\n.ant-menu-dark .ant-menu-submenu-selected > a,\n.ant-menu-dark .ant-menu-submenu-title:hover > a,\n.ant-menu-dark .ant-menu-item:hover > span > a,\n.ant-menu-dark .ant-menu-item-active > span > a,\n.ant-menu-dark .ant-menu-submenu-active > span > a,\n.ant-menu-dark .ant-menu-submenu-open > span > a,\n.ant-menu-dark .ant-menu-submenu-selected > span > a,\n.ant-menu-dark .ant-menu-submenu-title:hover > span > a {\n color: #fff;\n}\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow,\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow {\n opacity: 1;\n}\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before {\n background: #fff;\n}\n.ant-menu-dark .ant-menu-item:hover {\n background-color: transparent;\n}\n.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-selected {\n background-color: #1890ff;\n}\n.ant-menu-dark .ant-menu-item-selected {\n color: #fff;\n border-right: 0;\n}\n.ant-menu-dark .ant-menu-item-selected::after {\n border-right: 0;\n}\n.ant-menu-dark .ant-menu-item-selected > a,\n.ant-menu-dark .ant-menu-item-selected > span > a,\n.ant-menu-dark .ant-menu-item-selected > a:hover,\n.ant-menu-dark .ant-menu-item-selected > span > a:hover {\n color: #fff;\n}\n.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon,\n.ant-menu-dark .ant-menu-item-selected .anticon {\n color: #fff;\n}\n.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon + span,\n.ant-menu-dark .ant-menu-item-selected .anticon + span {\n color: #fff;\n}\n.ant-menu.ant-menu-dark .ant-menu-item-selected,\n.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected {\n background-color: #1890ff;\n}\n.ant-menu-dark .ant-menu-item-disabled,\n.ant-menu-dark .ant-menu-submenu-disabled,\n.ant-menu-dark .ant-menu-item-disabled > a,\n.ant-menu-dark .ant-menu-submenu-disabled > a,\n.ant-menu-dark .ant-menu-item-disabled > span > a,\n.ant-menu-dark .ant-menu-submenu-disabled > span > a {\n color: rgba(255, 255, 255, 0.35) !important;\n opacity: 0.8;\n}\n.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title,\n.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title {\n color: rgba(255, 255, 255, 0.35) !important;\n}\n.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::before,\n.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after,\n.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow::after {\n background: rgba(255, 255, 255, 0.35) !important;\n}\n.ant-menu.ant-menu-rtl {\n direction: rtl;\n text-align: right;\n}\n.ant-menu-rtl .ant-menu-item-group-title {\n text-align: right;\n}\n.ant-menu-rtl.ant-menu-inline,\n.ant-menu-rtl.ant-menu-vertical {\n border-right: none;\n border-left: 1px solid #f0f0f0;\n}\n.ant-menu-rtl.ant-menu-dark.ant-menu-inline,\n.ant-menu-rtl.ant-menu-dark.ant-menu-vertical {\n border-left: none;\n}\n.ant-menu-rtl.ant-menu-vertical.ant-menu-sub > .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub > .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub > .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical.ant-menu-sub > .ant-menu-submenu,\n.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub > .ant-menu-submenu,\n.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub > .ant-menu-submenu {\n transform-origin: top right;\n}\n.ant-menu-rtl .ant-menu-item .ant-menu-item-icon,\n.ant-menu-rtl .ant-menu-submenu-title .ant-menu-item-icon,\n.ant-menu-rtl .ant-menu-item .anticon,\n.ant-menu-rtl .ant-menu-submenu-title .anticon {\n margin-right: auto;\n margin-left: 10px;\n}\n.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child > .ant-menu-item-icon,\n.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child > .ant-menu-item-icon,\n.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child > .anticon,\n.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child > .anticon {\n margin-left: 0;\n}\n.ant-menu-submenu-rtl.ant-menu-submenu-popup {\n transform-origin: 100% 0;\n}\n.ant-menu-rtl .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu-rtl .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu-rtl .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow,\n.ant-menu-rtl .ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow {\n right: auto;\n left: 16px;\n}\n.ant-menu-rtl .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\n.ant-menu-rtl .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::before,\n.ant-menu-rtl .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::before {\n transform: rotate(-45deg) translateY(-2px);\n}\n.ant-menu-rtl .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu-rtl .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::after,\n.ant-menu-rtl .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::after {\n transform: rotate(45deg) translateY(2px);\n}\n.ant-menu-rtl.ant-menu-vertical .ant-menu-item::after,\n.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item::after,\n.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item::after,\n.ant-menu-rtl.ant-menu-inline .ant-menu-item::after {\n right: auto;\n left: 0;\n}\n.ant-menu-rtl.ant-menu-vertical .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,\n.ant-menu-rtl.ant-menu-inline .ant-menu-item,\n.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title,\n.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,\n.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title,\n.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title {\n text-align: right;\n}\n.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title {\n padding-right: 0;\n padding-left: 34px;\n}\n.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title {\n padding-right: 16px;\n padding-left: 34px;\n}\n.ant-menu-rtl.ant-menu-inline-collapsed.ant-menu-vertical .ant-menu-submenu-title {\n padding: 0 calc(50% - 16px / 2);\n}\n.ant-menu-rtl .ant-menu-item-group-list .ant-menu-item,\n.ant-menu-rtl .ant-menu-item-group-list .ant-menu-submenu-title {\n padding: 0 28px 0 16px;\n}\n.ant-menu-sub.ant-menu-inline {\n border: 0;\n}\n.ant-menu-rtl.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title {\n padding-right: 32px;\n padding-left: 0;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-tooltip {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n z-index: 1070;\n display: block;\n width: -moz-max-content;\n width: max-content;\n width: intrinsic;\n max-width: 250px;\n visibility: visible;\n}\n.ant-tooltip-content {\n position: relative;\n}\n.ant-tooltip-hidden {\n display: none;\n}\n.ant-tooltip-placement-top,\n.ant-tooltip-placement-topLeft,\n.ant-tooltip-placement-topRight {\n padding-bottom: 14.3137085px;\n}\n.ant-tooltip-placement-right,\n.ant-tooltip-placement-rightTop,\n.ant-tooltip-placement-rightBottom {\n padding-left: 14.3137085px;\n}\n.ant-tooltip-placement-bottom,\n.ant-tooltip-placement-bottomLeft,\n.ant-tooltip-placement-bottomRight {\n padding-top: 14.3137085px;\n}\n.ant-tooltip-placement-left,\n.ant-tooltip-placement-leftTop,\n.ant-tooltip-placement-leftBottom {\n padding-right: 14.3137085px;\n}\n.ant-tooltip-inner {\n min-width: 30px;\n min-height: 32px;\n padding: 6px 8px;\n color: #fff;\n text-align: left;\n text-decoration: none;\n word-wrap: break-word;\n background-color: rgba(0, 0, 0, 0.75);\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-tooltip-arrow {\n position: absolute;\n z-index: 2;\n display: block;\n width: 22px;\n height: 22px;\n overflow: hidden;\n background: transparent;\n pointer-events: none;\n}\n.ant-tooltip-arrow-content {\n --antd-arrow-background-color: linear-gradient(to right bottom, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.75));\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n width: 11.3137085px;\n height: 11.3137085px;\n margin: auto;\n content: '';\n pointer-events: auto;\n border-radius: 0 0 2px;\n pointer-events: none;\n}\n.ant-tooltip-arrow-content::before {\n position: absolute;\n top: -11.3137085px;\n left: -11.3137085px;\n width: 33.9411255px;\n height: 33.9411255px;\n background: var(--antd-arrow-background-color);\n background-repeat: no-repeat;\n background-position: -10px -10px;\n content: '';\n -webkit-clip-path: inset(33% 33%);\n clip-path: inset(33% 33%);\n -webkit-clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n}\n.ant-tooltip-placement-top .ant-tooltip-arrow,\n.ant-tooltip-placement-topLeft .ant-tooltip-arrow,\n.ant-tooltip-placement-topRight .ant-tooltip-arrow {\n bottom: 0;\n transform: translateY(100%);\n}\n.ant-tooltip-placement-top .ant-tooltip-arrow-content,\n.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,\n.ant-tooltip-placement-topRight .ant-tooltip-arrow-content {\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateY(-11px) rotate(45deg);\n}\n.ant-tooltip-placement-top .ant-tooltip-arrow {\n left: 50%;\n transform: translateY(100%) translateX(-50%);\n}\n.ant-tooltip-placement-topLeft .ant-tooltip-arrow {\n left: 13px;\n}\n.ant-tooltip-placement-topRight .ant-tooltip-arrow {\n right: 13px;\n}\n.ant-tooltip-placement-right .ant-tooltip-arrow,\n.ant-tooltip-placement-rightTop .ant-tooltip-arrow,\n.ant-tooltip-placement-rightBottom .ant-tooltip-arrow {\n left: 0;\n transform: translateX(-100%);\n}\n.ant-tooltip-placement-right .ant-tooltip-arrow-content,\n.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content,\n.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content {\n box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateX(11px) rotate(135deg);\n}\n.ant-tooltip-placement-right .ant-tooltip-arrow {\n top: 50%;\n transform: translateX(-100%) translateY(-50%);\n}\n.ant-tooltip-placement-rightTop .ant-tooltip-arrow {\n top: 5px;\n}\n.ant-tooltip-placement-rightBottom .ant-tooltip-arrow {\n bottom: 5px;\n}\n.ant-tooltip-placement-left .ant-tooltip-arrow,\n.ant-tooltip-placement-leftTop .ant-tooltip-arrow,\n.ant-tooltip-placement-leftBottom .ant-tooltip-arrow {\n right: 0;\n transform: translateX(100%);\n}\n.ant-tooltip-placement-left .ant-tooltip-arrow-content,\n.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content,\n.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content {\n box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07);\n transform: translateX(-11px) rotate(315deg);\n}\n.ant-tooltip-placement-left .ant-tooltip-arrow {\n top: 50%;\n transform: translateX(100%) translateY(-50%);\n}\n.ant-tooltip-placement-leftTop .ant-tooltip-arrow {\n top: 5px;\n}\n.ant-tooltip-placement-leftBottom .ant-tooltip-arrow {\n bottom: 5px;\n}\n.ant-tooltip-placement-bottom .ant-tooltip-arrow,\n.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,\n.ant-tooltip-placement-bottomRight .ant-tooltip-arrow {\n top: 0;\n transform: translateY(-100%);\n}\n.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,\n.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,\n.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content {\n box-shadow: -3px -3px 7px rgba(0, 0, 0, 0.07);\n transform: translateY(11px) rotate(225deg);\n}\n.ant-tooltip-placement-bottom .ant-tooltip-arrow {\n left: 50%;\n transform: translateY(-100%) translateX(-50%);\n}\n.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow {\n left: 13px;\n}\n.ant-tooltip-placement-bottomRight .ant-tooltip-arrow {\n right: 13px;\n}\n.ant-tooltip-pink .ant-tooltip-inner {\n background-color: #eb2f96;\n}\n.ant-tooltip-pink .ant-tooltip-arrow-content::before {\n background: #eb2f96;\n}\n.ant-tooltip-magenta .ant-tooltip-inner {\n background-color: #eb2f96;\n}\n.ant-tooltip-magenta .ant-tooltip-arrow-content::before {\n background: #eb2f96;\n}\n.ant-tooltip-red .ant-tooltip-inner {\n background-color: #f5222d;\n}\n.ant-tooltip-red .ant-tooltip-arrow-content::before {\n background: #f5222d;\n}\n.ant-tooltip-volcano .ant-tooltip-inner {\n background-color: #fa541c;\n}\n.ant-tooltip-volcano .ant-tooltip-arrow-content::before {\n background: #fa541c;\n}\n.ant-tooltip-orange .ant-tooltip-inner {\n background-color: #fa8c16;\n}\n.ant-tooltip-orange .ant-tooltip-arrow-content::before {\n background: #fa8c16;\n}\n.ant-tooltip-yellow .ant-tooltip-inner {\n background-color: #fadb14;\n}\n.ant-tooltip-yellow .ant-tooltip-arrow-content::before {\n background: #fadb14;\n}\n.ant-tooltip-gold .ant-tooltip-inner {\n background-color: #faad14;\n}\n.ant-tooltip-gold .ant-tooltip-arrow-content::before {\n background: #faad14;\n}\n.ant-tooltip-cyan .ant-tooltip-inner {\n background-color: #13c2c2;\n}\n.ant-tooltip-cyan .ant-tooltip-arrow-content::before {\n background: #13c2c2;\n}\n.ant-tooltip-lime .ant-tooltip-inner {\n background-color: #a0d911;\n}\n.ant-tooltip-lime .ant-tooltip-arrow-content::before {\n background: #a0d911;\n}\n.ant-tooltip-green .ant-tooltip-inner {\n background-color: #52c41a;\n}\n.ant-tooltip-green .ant-tooltip-arrow-content::before {\n background: #52c41a;\n}\n.ant-tooltip-blue .ant-tooltip-inner {\n background-color: #1890ff;\n}\n.ant-tooltip-blue .ant-tooltip-arrow-content::before {\n background: #1890ff;\n}\n.ant-tooltip-geekblue .ant-tooltip-inner {\n background-color: #2f54eb;\n}\n.ant-tooltip-geekblue .ant-tooltip-arrow-content::before {\n background: #2f54eb;\n}\n.ant-tooltip-purple .ant-tooltip-inner {\n background-color: #722ed1;\n}\n.ant-tooltip-purple .ant-tooltip-arrow-content::before {\n background: #722ed1;\n}\n.ant-tooltip-rtl {\n direction: rtl;\n}\n.ant-tooltip-rtl .ant-tooltip-inner {\n text-align: right;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-space {\n display: inline-flex;\n}\n.ant-space-vertical {\n flex-direction: column;\n}\n.ant-space-align-center {\n align-items: center;\n}\n.ant-space-align-start {\n align-items: flex-start;\n}\n.ant-space-align-end {\n align-items: flex-end;\n}\n.ant-space-align-baseline {\n align-items: baseline;\n}\n.ant-space-item:empty {\n display: none;\n}\n.ant-space-compact {\n display: inline-flex;\n}\n.ant-space-compact-block {\n display: flex;\n width: 100%;\n}\n.ant-space-compact-vertical {\n flex-direction: column;\n}\n.ant-space-rtl {\n direction: rtl;\n}\n.ant-space-compact-rtl {\n direction: rtl;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-select-single .ant-select-selector {\n display: flex;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-search {\n position: absolute;\n top: 0;\n right: 11px;\n bottom: 0;\n left: 11px;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-search-input {\n width: 100%;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-item,\n.ant-select-single .ant-select-selector .ant-select-selection-placeholder {\n padding: 0;\n line-height: 30px;\n transition: all 0.3s, visibility 0s;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-item {\n position: relative;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-select-single .ant-select-selector .ant-select-selection-placeholder {\n transition: none;\n pointer-events: none;\n}\n.ant-select-single .ant-select-selector::after,\n.ant-select-single .ant-select-selector .ant-select-selection-item::after,\n.ant-select-single .ant-select-selector .ant-select-selection-placeholder::after {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n}\n.ant-select-single.ant-select-show-arrow .ant-select-selection-search {\n right: 25px;\n}\n.ant-select-single.ant-select-show-arrow .ant-select-selection-item,\n.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder {\n padding-right: 18px;\n}\n.ant-select-single.ant-select-open .ant-select-selection-item {\n color: #bfbfbf;\n}\n.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {\n width: 100%;\n height: 32px;\n padding: 0 11px;\n}\n.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {\n height: 30px;\n}\n.ant-select-single:not(.ant-select-customize-input) .ant-select-selector::after {\n line-height: 30px;\n}\n.ant-select-single.ant-select-customize-input .ant-select-selector::after {\n display: none;\n}\n.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search {\n position: static;\n width: 100%;\n}\n.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder {\n position: absolute;\n right: 0;\n left: 0;\n padding: 0 11px;\n}\n.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder::after {\n display: none;\n}\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector {\n height: 40px;\n}\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector::after,\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder {\n line-height: 38px;\n}\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input {\n height: 38px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector {\n height: 24px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector::after,\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder {\n line-height: 22px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input {\n height: 22px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selection-search {\n right: 7px;\n left: 7px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector {\n padding: 0 7px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search {\n right: 28px;\n}\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,\n.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder {\n padding-right: 21px;\n}\n.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector {\n padding: 0 11px;\n}\n/**\n * Do not merge `height` & `line-height` under style with `selection` & `search`,\n * since chrome may update to redesign with its align logic.\n */\n.ant-select-selection-overflow {\n position: relative;\n display: flex;\n flex: auto;\n flex-wrap: wrap;\n max-width: 100%;\n}\n.ant-select-selection-overflow-item {\n flex: none;\n align-self: center;\n max-width: 100%;\n}\n.ant-select-multiple .ant-select-selector {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: 1px 4px;\n}\n.ant-select-show-search.ant-select-multiple .ant-select-selector {\n cursor: text;\n}\n.ant-select-disabled.ant-select-multiple .ant-select-selector {\n background: #f5f5f5;\n cursor: not-allowed;\n}\n.ant-select-multiple .ant-select-selector::after {\n display: inline-block;\n width: 0;\n margin: 2px 0;\n line-height: 24px;\n visibility: hidden;\n content: '\\a0';\n}\n.ant-select-multiple.ant-select-show-arrow .ant-select-selector,\n.ant-select-multiple.ant-select-allow-clear .ant-select-selector {\n padding-right: 24px;\n}\n.ant-select-multiple .ant-select-selection-item {\n position: relative;\n display: flex;\n flex: none;\n box-sizing: border-box;\n max-width: 100%;\n height: 24px;\n margin-top: 2px;\n margin-bottom: 2px;\n line-height: 22px;\n background: #f5f5f5;\n border: 1px solid #f0f0f0;\n border-radius: 2px;\n cursor: default;\n transition: font-size 0.3s, line-height 0.3s, height 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n margin-inline-end: 4px;\n padding-inline-start: 8px;\n padding-inline-end: 4px;\n}\n.ant-select-disabled.ant-select-multiple .ant-select-selection-item {\n color: #bfbfbf;\n border-color: #d9d9d9;\n cursor: not-allowed;\n}\n.ant-select-multiple .ant-select-selection-item-content {\n display: inline-block;\n margin-right: 4px;\n overflow: hidden;\n white-space: pre;\n text-overflow: ellipsis;\n}\n.ant-select-multiple .ant-select-selection-item-remove {\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n display: inline-flex;\n align-items: center;\n color: rgba(0, 0, 0, 0.45);\n font-weight: bold;\n font-size: 10px;\n line-height: inherit;\n cursor: pointer;\n}\n.ant-select-multiple .ant-select-selection-item-remove > * {\n line-height: 1;\n}\n.ant-select-multiple .ant-select-selection-item-remove svg {\n display: inline-block;\n}\n.ant-select-multiple .ant-select-selection-item-remove::before {\n display: none;\n}\n.ant-select-multiple .ant-select-selection-item-remove .ant-select-multiple .ant-select-selection-item-remove-icon {\n display: block;\n}\n.ant-select-multiple .ant-select-selection-item-remove > .anticon {\n vertical-align: middle;\n}\n.ant-select-multiple .ant-select-selection-item-remove:hover {\n color: rgba(0, 0, 0, 0.75);\n}\n.ant-select-multiple .ant-select-selection-overflow-item + .ant-select-selection-overflow-item .ant-select-selection-search {\n margin-inline-start: 0;\n}\n.ant-select-multiple .ant-select-selection-search {\n position: relative;\n max-width: 100%;\n margin-inline-start: 7px;\n}\n.ant-select-multiple .ant-select-selection-search-input,\n.ant-select-multiple .ant-select-selection-search-mirror {\n height: 24px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n line-height: 24px;\n transition: all 0.3s;\n}\n.ant-select-multiple .ant-select-selection-search-input {\n width: 100%;\n min-width: 4.1px;\n}\n.ant-select-multiple .ant-select-selection-search-mirror {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 999;\n white-space: pre;\n visibility: hidden;\n}\n.ant-select-multiple .ant-select-selection-placeholder {\n position: absolute;\n top: 50%;\n right: 11px;\n left: 11px;\n transform: translateY(-50%);\n transition: all 0.3s;\n}\n.ant-select-multiple.ant-select-lg .ant-select-selector::after {\n line-height: 32px;\n}\n.ant-select-multiple.ant-select-lg .ant-select-selection-item {\n height: 32px;\n line-height: 30px;\n}\n.ant-select-multiple.ant-select-lg .ant-select-selection-search {\n height: 32px;\n line-height: 32px;\n}\n.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,\n.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror {\n height: 32px;\n line-height: 30px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selector::after {\n line-height: 16px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-item {\n height: 16px;\n line-height: 14px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-search {\n height: 16px;\n line-height: 16px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,\n.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror {\n height: 16px;\n line-height: 14px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder {\n left: 7px;\n}\n.ant-select-multiple.ant-select-sm .ant-select-selection-search {\n margin-inline-start: 3px;\n}\n.ant-select-disabled .ant-select-selection-item-remove {\n display: none;\n}\n.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector {\n background-color: #fff;\n border-color: #ff4d4f !important;\n}\n.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-open .ant-select-selector,\n.ant-select-status-error.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-focused .ant-select-selector {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector {\n background-color: #fff;\n border-color: #faad14 !important;\n}\n.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-open .ant-select-selector,\n.ant-select-status-warning.ant-select:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer).ant-select-focused .ant-select-selector {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-select-status-error.ant-select-has-feedback .ant-select-clear,\n.ant-select-status-warning.ant-select-has-feedback .ant-select-clear,\n.ant-select-status-success.ant-select-has-feedback .ant-select-clear,\n.ant-select-status-validating.ant-select-has-feedback .ant-select-clear {\n right: 32px;\n}\n.ant-select-status-error.ant-select-has-feedback .ant-select-selection-selected-value,\n.ant-select-status-warning.ant-select-has-feedback .ant-select-selection-selected-value,\n.ant-select-status-success.ant-select-has-feedback .ant-select-selection-selected-value,\n.ant-select-status-validating.ant-select-has-feedback .ant-select-selection-selected-value {\n padding-right: 42px;\n}\n/* Reset search input style */\n.ant-select {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n cursor: pointer;\n}\n.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n position: relative;\n background-color: #fff;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-select:not(.ant-select-customize-input) .ant-select-selector input {\n cursor: pointer;\n}\n.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n cursor: text;\n}\n.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input {\n cursor: auto;\n}\n.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n color: rgba(0, 0, 0, 0.25);\n background: #f5f5f5;\n cursor: not-allowed;\n}\n.ant-select-multiple.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {\n background: #f5f5f5;\n}\n.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input {\n cursor: not-allowed;\n}\n.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {\n margin: 0;\n padding: 0;\n background: transparent;\n border: none;\n outline: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button {\n display: none;\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n}\n.ant-select:not(.ant-select-disabled):hover .ant-select-selector {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-select-selection-item {\n flex: 1;\n overflow: hidden;\n font-weight: normal;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n@media all and (-ms-high-contrast: none) {\n .ant-select-selection-item *::-ms-backdrop,\n .ant-select-selection-item {\n flex: auto;\n }\n}\n.ant-select-selection-placeholder {\n flex: 1;\n overflow: hidden;\n color: #bfbfbf;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n}\n@media all and (-ms-high-contrast: none) {\n .ant-select-selection-placeholder *::-ms-backdrop,\n .ant-select-selection-placeholder {\n flex: auto;\n }\n}\n.ant-select-arrow {\n display: inline-flex;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n position: absolute;\n top: 50%;\n right: 11px;\n display: flex;\n align-items: center;\n height: 12px;\n margin-top: -6px;\n color: rgba(0, 0, 0, 0.25);\n font-size: 12px;\n line-height: 1;\n text-align: center;\n pointer-events: none;\n}\n.ant-select-arrow > * {\n line-height: 1;\n}\n.ant-select-arrow svg {\n display: inline-block;\n}\n.ant-select-arrow::before {\n display: none;\n}\n.ant-select-arrow .ant-select-arrow-icon {\n display: block;\n}\n.ant-select-arrow .anticon {\n vertical-align: top;\n transition: transform 0.3s;\n}\n.ant-select-arrow .anticon > svg {\n vertical-align: top;\n}\n.ant-select-arrow .anticon:not(.ant-select-suffix) {\n pointer-events: auto;\n}\n.ant-select-disabled .ant-select-arrow {\n cursor: not-allowed;\n}\n.ant-select-arrow > *:not(:last-child) {\n margin-inline-end: 8px;\n}\n.ant-select-clear {\n position: absolute;\n top: 50%;\n right: 11px;\n z-index: 1;\n display: inline-block;\n width: 12px;\n height: 12px;\n margin-top: -6px;\n color: rgba(0, 0, 0, 0.25);\n font-size: 12px;\n font-style: normal;\n line-height: 1;\n text-align: center;\n text-transform: none;\n background: #fff;\n cursor: pointer;\n opacity: 0;\n transition: color 0.3s ease, opacity 0.15s ease;\n text-rendering: auto;\n}\n.ant-select-clear::before {\n display: block;\n}\n.ant-select-clear:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-select:hover .ant-select-clear {\n opacity: 1;\n}\n.ant-select-dropdown {\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: -9999px;\n left: -9999px;\n z-index: 1050;\n box-sizing: border-box;\n padding: 4px 0;\n overflow: hidden;\n font-size: 14px;\n font-variant: initial;\n background-color: #fff;\n border-radius: 2px;\n outline: none;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft,\n.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft {\n animation-name: antSlideUpIn;\n}\n.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft,\n.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft {\n animation-name: antSlideDownIn;\n}\n.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft {\n animation-name: antSlideUpOut;\n}\n.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft {\n animation-name: antSlideDownOut;\n}\n.ant-select-dropdown-hidden {\n display: none;\n}\n.ant-select-dropdown-empty {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-select-item-empty {\n position: relative;\n display: block;\n min-height: 32px;\n padding: 5px 12px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 22px;\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-select-item {\n position: relative;\n display: block;\n min-height: 32px;\n padding: 5px 12px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n line-height: 22px;\n cursor: pointer;\n transition: background 0.3s ease;\n}\n.ant-select-item-group {\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n cursor: default;\n}\n.ant-select-item-option {\n display: flex;\n}\n.ant-select-item-option-content {\n flex: auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-select-item-option-state {\n flex: none;\n}\n.ant-select-item-option-active:not(.ant-select-item-option-disabled) {\n background-color: #f5f5f5;\n}\n.ant-select-item-option-selected:not(.ant-select-item-option-disabled) {\n color: rgba(0, 0, 0, 0.85);\n font-weight: 600;\n background-color: #e6f7ff;\n}\n.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state {\n color: #1890ff;\n}\n.ant-select-item-option-disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-select-item-option-disabled.ant-select-item-option-selected {\n background-color: #f5f5f5;\n}\n.ant-select-item-option-grouped {\n padding-left: 24px;\n}\n.ant-select-lg {\n font-size: 16px;\n}\n.ant-select-borderless .ant-select-selector {\n background-color: transparent !important;\n border-color: transparent !important;\n box-shadow: none !important;\n}\n.ant-select.ant-select-in-form-item {\n width: 100%;\n}\n.ant-select-compact-item:not(.ant-select-compact-last-item) {\n margin-right: -1px;\n}\n.ant-select-compact-item:not(.ant-select-compact-last-item).ant-select-compact-item-rtl {\n margin-right: 0;\n margin-left: -1px;\n}\n.ant-select-compact-item:hover > *,\n.ant-select-compact-item:focus > *,\n.ant-select-compact-item:active > * {\n z-index: 2;\n}\n.ant-select-compact-item.ant-select-focused > * {\n z-index: 2;\n}\n.ant-select-compact-item[disabled] > * {\n z-index: 0;\n}\n.ant-select-compact-item:not(.ant-select-compact-first-item):not(.ant-select-compact-last-item).ant-select > .ant-select-selector {\n border-radius: 0;\n}\n.ant-select-compact-item.ant-select-compact-first-item.ant-select:not(.ant-select-compact-last-item):not(.ant-select-compact-item-rtl) > .ant-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-select-compact-item.ant-select-compact-last-item.ant-select:not(.ant-select-compact-first-item):not(.ant-select-compact-item-rtl) > .ant-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-select-compact-item.ant-select.ant-select-compact-first-item.ant-select-compact-item-rtl:not(.ant-select-compact-last-item) > .ant-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-select-compact-item.ant-select.ant-select-compact-last-item.ant-select-compact-item-rtl:not(.ant-select-compact-first-item) > .ant-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-select-rtl {\n direction: rtl;\n}\n.ant-select-rtl .ant-select-arrow {\n right: initial;\n left: 11px;\n}\n.ant-select-rtl .ant-select-clear {\n right: initial;\n left: 11px;\n}\n.ant-select-dropdown-rtl {\n direction: rtl;\n}\n.ant-select-dropdown-rtl .ant-select-item-option-grouped {\n padding-right: 24px;\n padding-left: 12px;\n}\n.ant-select-rtl.ant-select-multiple.ant-select-show-arrow .ant-select-selector,\n.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector {\n padding-right: 4px;\n padding-left: 24px;\n}\n.ant-select-rtl.ant-select-multiple .ant-select-selection-item {\n text-align: right;\n}\n.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content {\n margin-right: 0;\n margin-left: 4px;\n text-align: right;\n}\n.ant-select-rtl.ant-select-multiple .ant-select-selection-search-mirror {\n right: 0;\n left: auto;\n}\n.ant-select-rtl.ant-select-multiple .ant-select-selection-placeholder {\n right: 11px;\n left: auto;\n}\n.ant-select-rtl.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder {\n right: 7px;\n}\n.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-item,\n.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-placeholder {\n right: 0;\n left: 9px;\n text-align: right;\n}\n.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-search {\n right: 11px;\n left: 25px;\n}\n.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-item,\n.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder {\n padding-right: 0;\n padding-left: 18px;\n}\n.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search {\n right: 6px;\n}\n.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,\n.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder {\n padding-right: 0;\n padding-left: 21px;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-empty {\n margin: 0 8px;\n font-size: 14px;\n line-height: 1.5715;\n text-align: center;\n}\n.ant-empty-image {\n height: 100px;\n margin-bottom: 8px;\n}\n.ant-empty-image img {\n height: 100%;\n}\n.ant-empty-image svg {\n height: 100%;\n margin: auto;\n}\n.ant-empty-footer {\n margin-top: 16px;\n}\n.ant-empty-normal {\n margin: 32px 0;\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-empty-normal .ant-empty-image {\n height: 40px;\n}\n.ant-empty-small {\n margin: 8px 0;\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-empty-small .ant-empty-image {\n height: 35px;\n}\n.ant-empty-img-default-ellipse {\n fill: #f5f5f5;\n fill-opacity: 0.8;\n}\n.ant-empty-img-default-path-1 {\n fill: #aeb8c2;\n}\n.ant-empty-img-default-path-2 {\n fill: url('#linearGradient-1');\n}\n.ant-empty-img-default-path-3 {\n fill: #f5f5f7;\n}\n.ant-empty-img-default-path-4 {\n fill: #dce0e6;\n}\n.ant-empty-img-default-path-5 {\n fill: #dce0e6;\n}\n.ant-empty-img-default-g {\n fill: #fff;\n}\n.ant-empty-img-simple-ellipse {\n fill: #f5f5f5;\n}\n.ant-empty-img-simple-g {\n stroke: #d9d9d9;\n}\n.ant-empty-img-simple-path {\n fill: #fafafa;\n}\n.ant-empty-rtl {\n direction: rtl;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-layout {\n display: flex;\n flex: auto;\n flex-direction: column;\n /* fix firefox can't set height smaller than content on flex item */\n min-height: 0;\n background: #f0f2f5;\n}\n.ant-layout,\n.ant-layout * {\n box-sizing: border-box;\n}\n.ant-layout.ant-layout-has-sider {\n flex-direction: row;\n}\n.ant-layout.ant-layout-has-sider > .ant-layout,\n.ant-layout.ant-layout-has-sider > .ant-layout-content {\n width: 0;\n}\n.ant-layout-header,\n.ant-layout-footer {\n flex: 0 0 auto;\n}\n.ant-layout-header {\n height: 64px;\n padding: 0 50px;\n color: rgba(0, 0, 0, 0.85);\n line-height: 64px;\n background: #001529;\n}\n.ant-layout-footer {\n padding: 24px 50px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n background: #f0f2f5;\n}\n.ant-layout-content {\n flex: auto;\n /* fix firefox can't set height smaller than content on flex item */\n min-height: 0;\n}\n.ant-layout-sider {\n position: relative;\n /* fix firefox can't set width smaller than content on flex item */\n min-width: 0;\n background: #001529;\n transition: all 0.2s;\n}\n.ant-layout-sider-children {\n height: 100%;\n margin-top: -0.1px;\n padding-top: 0.1px;\n}\n.ant-layout-sider-children .ant-menu.ant-menu-inline-collapsed {\n width: auto;\n}\n.ant-layout-sider-has-trigger {\n padding-bottom: 48px;\n}\n.ant-layout-sider-right {\n order: 1;\n}\n.ant-layout-sider-trigger {\n position: fixed;\n bottom: 0;\n z-index: 1;\n height: 48px;\n color: #fff;\n line-height: 48px;\n text-align: center;\n background: #002140;\n cursor: pointer;\n transition: all 0.2s;\n}\n.ant-layout-sider-zero-width > * {\n overflow: hidden;\n}\n.ant-layout-sider-zero-width-trigger {\n position: absolute;\n top: 64px;\n right: -36px;\n z-index: 1;\n width: 36px;\n height: 42px;\n color: #fff;\n font-size: 18px;\n line-height: 42px;\n text-align: center;\n background: #001529;\n border-radius: 0 2px 2px 0;\n cursor: pointer;\n transition: background 0.3s ease;\n}\n.ant-layout-sider-zero-width-trigger::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n transition: all 0.3s;\n content: '';\n}\n.ant-layout-sider-zero-width-trigger:hover::after {\n background: rgba(255, 255, 255, 0.1);\n}\n.ant-layout-sider-zero-width-trigger-right {\n left: -36px;\n border-radius: 2px 0 0 2px;\n}\n.ant-layout-sider-light {\n background: #fff;\n}\n.ant-layout-sider-light .ant-layout-sider-trigger {\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n}\n.ant-layout-sider-light .ant-layout-sider-zero-width-trigger {\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n}\n.ant-layout-rtl {\n direction: rtl;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-modal {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n pointer-events: none;\n position: relative;\n top: 100px;\n width: auto;\n max-width: calc(100vw - 32px);\n margin: 0 auto;\n padding-bottom: 24px;\n}\n.ant-modal.ant-zoom-enter,\n.ant-modal.ant-zoom-appear {\n transform: none;\n opacity: 0;\n animation-duration: 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-modal-mask {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.45);\n}\n.ant-modal-mask-hidden {\n display: none;\n}\n.ant-modal-wrap {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: auto;\n outline: 0;\n}\n.ant-modal-wrap {\n z-index: 1000;\n}\n.ant-modal-title {\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n word-wrap: break-word;\n}\n.ant-modal-content {\n position: relative;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n pointer-events: auto;\n}\n.ant-modal-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 10;\n padding: 0;\n color: rgba(0, 0, 0, 0.45);\n font-weight: 700;\n line-height: 1;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color 0.3s;\n}\n.ant-modal-close-x {\n display: block;\n width: 54px;\n height: 54px;\n font-size: 16px;\n font-style: normal;\n line-height: 54px;\n text-align: center;\n text-transform: none;\n text-rendering: auto;\n}\n.ant-modal-close:focus,\n.ant-modal-close:hover {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n}\n.ant-modal-header {\n padding: 16px 24px;\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n border-radius: 2px 2px 0 0;\n}\n.ant-modal-body {\n padding: 24px;\n font-size: 14px;\n line-height: 1.5715;\n word-wrap: break-word;\n}\n.ant-modal-footer {\n padding: 10px 16px;\n text-align: right;\n background: transparent;\n border-top: 1px solid #f0f0f0;\n border-radius: 0 0 2px 2px;\n}\n.ant-modal-footer .ant-btn + .ant-btn:not(.ant-dropdown-trigger) {\n margin-bottom: 0;\n margin-left: 8px;\n}\n.ant-modal-open {\n overflow: hidden;\n}\n.ant-modal-centered {\n text-align: center;\n}\n.ant-modal-centered::before {\n display: inline-block;\n width: 0;\n height: 100%;\n vertical-align: middle;\n content: '';\n}\n.ant-modal-centered .ant-modal {\n top: 0;\n display: inline-block;\n padding-bottom: 0;\n text-align: left;\n vertical-align: middle;\n}\n@media (max-width: 767px) {\n .ant-modal {\n max-width: calc(100vw - 16px);\n margin: 8px auto;\n }\n .ant-modal-centered .ant-modal {\n flex: 1;\n }\n}\n.ant-modal-confirm .ant-modal-header {\n display: none;\n}\n.ant-modal-confirm .ant-modal-body {\n padding: 32px 32px 24px;\n}\n.ant-modal-confirm-body-wrapper::before {\n display: table;\n content: '';\n}\n.ant-modal-confirm-body-wrapper::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-modal-confirm-body .ant-modal-confirm-title {\n display: block;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 1.4;\n}\n.ant-modal-confirm-body .ant-modal-confirm-content {\n margin-top: 8px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-modal-confirm-body > .anticon {\n float: left;\n margin-right: 16px;\n font-size: 22px;\n}\n.ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\n margin-left: 38px;\n}\n.ant-modal-confirm .ant-modal-confirm-btns {\n margin-top: 24px;\n text-align: right;\n}\n.ant-modal-confirm .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-bottom: 0;\n margin-left: 8px;\n}\n.ant-modal-confirm-error .ant-modal-confirm-body > .anticon {\n color: #ff4d4f;\n}\n.ant-modal-confirm-warning .ant-modal-confirm-body > .anticon,\n.ant-modal-confirm-confirm .ant-modal-confirm-body > .anticon {\n color: #faad14;\n}\n.ant-modal-confirm-info .ant-modal-confirm-body > .anticon {\n color: #1890ff;\n}\n.ant-modal-confirm-success .ant-modal-confirm-body > .anticon {\n color: #52c41a;\n}\n.ant-modal-confirm .ant-zoom-leave .ant-modal-confirm-btns {\n pointer-events: none;\n}\n.ant-modal-wrap-rtl {\n direction: rtl;\n}\n.ant-modal-wrap-rtl .ant-modal-close {\n right: initial;\n left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-footer {\n text-align: left;\n}\n.ant-modal-wrap-rtl .ant-modal-footer .ant-btn + .ant-btn {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body {\n direction: rtl;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\n margin-right: 38px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-btns {\n text-align: left;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl.ant-modal-centered .ant-modal {\n text-align: right;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-switch {\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n min-width: 44px;\n height: 22px;\n line-height: 22px;\n vertical-align: middle;\n background-color: rgba(0, 0, 0, 0.25);\n border: 0;\n border-radius: 100px;\n cursor: pointer;\n transition: all 0.2s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-switch:focus {\n outline: 0;\n box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);\n}\n.ant-switch-checked:focus {\n box-shadow: 0 0 0 2px #e6f7ff;\n}\n.ant-switch:focus:hover {\n box-shadow: none;\n}\n.ant-switch-checked {\n background-color: #1890ff;\n}\n.ant-switch-loading,\n.ant-switch-disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n.ant-switch-loading *,\n.ant-switch-disabled * {\n box-shadow: none;\n cursor: not-allowed;\n}\n.ant-switch-inner {\n display: block;\n margin: 0 7px 0 25px;\n color: #fff;\n font-size: 12px;\n transition: margin 0.2s;\n}\n.ant-switch-checked .ant-switch-inner {\n margin: 0 25px 0 7px;\n}\n.ant-switch-handle {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 18px;\n height: 18px;\n transition: all 0.2s ease-in-out;\n}\n.ant-switch-handle::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #fff;\n border-radius: 9px;\n box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2);\n transition: all 0.2s ease-in-out;\n content: '';\n}\n.ant-switch-checked .ant-switch-handle {\n left: calc(100% - 18px - 2px);\n}\n.ant-switch:not(.ant-switch-disabled):active .ant-switch-handle::before {\n right: -30%;\n left: 0;\n}\n.ant-switch:not(.ant-switch-disabled):active.ant-switch-checked .ant-switch-handle::before {\n right: 0;\n left: -30%;\n}\n.ant-switch-loading-icon.anticon {\n position: relative;\n top: 2px;\n color: rgba(0, 0, 0, 0.65);\n vertical-align: top;\n}\n.ant-switch-checked .ant-switch-loading-icon {\n color: #1890ff;\n}\n.ant-switch-small {\n min-width: 28px;\n height: 16px;\n line-height: 16px;\n}\n.ant-switch-small .ant-switch-inner {\n margin: 0 5px 0 18px;\n font-size: 12px;\n}\n.ant-switch-small .ant-switch-handle {\n width: 12px;\n height: 12px;\n}\n.ant-switch-small .ant-switch-loading-icon {\n top: 1.5px;\n font-size: 9px;\n}\n.ant-switch-small.ant-switch-checked .ant-switch-inner {\n margin: 0 18px 0 5px;\n}\n.ant-switch-small.ant-switch-checked .ant-switch-handle {\n left: calc(100% - 12px - 2px);\n}\n.ant-switch-rtl {\n direction: rtl;\n}\n.ant-switch-rtl .ant-switch-inner {\n margin: 0 25px 0 7px;\n}\n.ant-switch-rtl .ant-switch-handle {\n right: 2px;\n left: auto;\n}\n.ant-switch-rtl:not(.ant-switch-rtl-disabled):active .ant-switch-handle::before {\n right: 0;\n left: -30%;\n}\n.ant-switch-rtl:not(.ant-switch-rtl-disabled):active.ant-switch-checked .ant-switch-handle::before {\n right: -30%;\n left: 0;\n}\n.ant-switch-rtl.ant-switch-checked .ant-switch-inner {\n margin: 0 7px 0 25px;\n}\n.ant-switch-rtl.ant-switch-checked .ant-switch-handle {\n right: calc(100% - 18px - 2px);\n}\n.ant-switch-rtl.ant-switch-small.ant-switch-checked .ant-switch-handle {\n right: calc(100% - 12px - 2px);\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/css/2.84b081bd.chunk.css b/build/static/css/2.84b081bd.chunk.css deleted file mode 100644 index 0e612e6..0000000 --- a/build/static/css/2.84b081bd.chunk.css +++ /dev/null @@ -1,2 +0,0 @@ -.ant-layout{display:flex;flex:auto;flex-direction:column;min-height:0;background:#f0f2f5}.ant-layout,.ant-layout *{box-sizing:border-box}.ant-layout.ant-layout-has-sider{flex-direction:row}.ant-layout.ant-layout-has-sider>.ant-layout,.ant-layout.ant-layout-has-sider>.ant-layout-content{width:0}.ant-layout-footer,.ant-layout-header{flex:0 0 auto}.ant-layout-header{height:64px;padding:0 50px;color:rgba(0,0,0,.85);line-height:64px;background:#001529}.ant-layout-footer{padding:24px 50px;color:rgba(0,0,0,.85);font-size:14px;background:#f0f2f5}.ant-layout-content{flex:auto;min-height:0}.ant-layout-sider{position:relative;min-width:0;background:#001529;transition:all .2s}.ant-layout-sider-children{height:100%;margin-top:-.1px;padding-top:.1px}.ant-layout-sider-children .ant-menu.ant-menu-inline-collapsed{width:auto}.ant-layout-sider-has-trigger{padding-bottom:48px}.ant-layout-sider-right{order:1}.ant-layout-sider-trigger{position:fixed;bottom:0;z-index:1;height:48px;color:#fff;line-height:48px;text-align:center;background:#002140;cursor:pointer;transition:all .2s}.ant-layout-sider-zero-width>*{overflow:hidden}.ant-layout-sider-zero-width-trigger{position:absolute;top:64px;right:-36px;z-index:1;width:36px;height:42px;color:#fff;font-size:18px;line-height:42px;text-align:center;background:#001529;border-radius:0 2px 2px 0;cursor:pointer;transition:background .3s ease}.ant-layout-sider-zero-width-trigger:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;transition:all .3s;content:""}.ant-layout-sider-zero-width-trigger:hover:after{background:hsla(0,0%,100%,.1)}.ant-layout-sider-zero-width-trigger-right{left:-36px;border-radius:2px 0 0 2px}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger,.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{color:rgba(0,0,0,.85);background:#fff}.ant-layout-rtl{direction:rtl}.ant-modal{box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";pointer-events:none;position:relative;top:100px;width:auto;max-width:calc(100vw - 32px);margin:0 auto;padding:0 0 24px}.ant-modal.ant-zoom-appear,.ant-modal.ant-zoom-enter{transform:none;opacity:0;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;height:100%;background-color:rgba(0,0,0,.45)}.ant-modal-mask-hidden{display:none}.ant-modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;outline:0;-webkit-overflow-scrolling:touch;z-index:1000}.ant-modal-title{margin:0;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:22px;word-wrap:break-word}.ant-modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:0;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);pointer-events:auto}.ant-modal-close{position:absolute;top:0;right:0;z-index:10;padding:0;color:rgba(0,0,0,.45);font-weight:700;line-height:1;text-decoration:none;background:transparent;border:0;outline:0;cursor:pointer;transition:color .3s}.ant-modal-close-x{display:block;width:56px;height:56px;font-size:16px;font-style:normal;line-height:56px;text-align:center;text-transform:none;text-rendering:auto}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-modal-header{padding:16px 24px;color:rgba(0,0,0,.85);background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0}.ant-modal-body{padding:24px;font-size:14px;line-height:1.5715;word-wrap:break-word}.ant-modal-footer{padding:10px 16px;text-align:right;background:transparent;border-top:1px solid #f0f0f0;border-radius:0 0 2px 2px}.ant-modal-footer .ant-btn+.ant-btn:not(.ant-dropdown-trigger){margin-bottom:0;margin-left:8px}.ant-modal-open{overflow:hidden}.ant-modal-centered{text-align:center}.ant-modal-centered:before{display:inline-block;width:0;height:100%;vertical-align:middle;content:""}.ant-modal-centered .ant-modal{top:0;display:inline-block;padding-bottom:0;text-align:left;vertical-align:middle}@media (max-width:767px){.ant-modal{max-width:calc(100vw - 16px);margin:8px auto}.ant-modal-centered .ant-modal{flex:1 1}}.ant-modal-confirm .ant-modal-header{display:none}.ant-modal-confirm .ant-modal-body{padding:32px 32px 24px}.ant-modal-confirm-body-wrapper:before{display:table;content:""}.ant-modal-confirm-body-wrapper:after{display:table;clear:both;content:""}.ant-modal-confirm-body .ant-modal-confirm-title{display:block;overflow:hidden;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:1.4}.ant-modal-confirm-body .ant-modal-confirm-content{margin-top:8px;color:rgba(0,0,0,.85);font-size:14px}.ant-modal-confirm-body>.anticon{float:left;margin-right:16px;font-size:22px}.ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:38px}.ant-modal-confirm .ant-modal-confirm-btns{float:right;margin-top:24px}.ant-modal-confirm .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-bottom:0;margin-left:8px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#ff4d4f}.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon,.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon{color:#faad14}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#52c41a}.ant-modal-wrap-rtl{direction:rtl}.ant-modal-wrap-rtl .ant-modal-close{right:auto;left:0}.ant-modal-wrap-rtl .ant-modal-footer{text-align:left}.ant-modal-wrap-rtl .ant-modal-footer .ant-btn+.ant-btn{margin-right:8px;margin-left:0}.ant-modal-wrap-rtl .ant-modal-confirm-body{direction:rtl}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon{float:right;margin-right:0;margin-left:16px}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-right:38px;margin-left:0}.ant-modal-wrap-rtl .ant-modal-confirm-btns{float:left}.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-right:8px;margin-left:0}.ant-modal-wrap-rtl.ant-modal-centered .ant-modal{text-align:right} -/*# sourceMappingURL=2.84b081bd.chunk.css.map */ \ No newline at end of file diff --git a/build/static/css/2.84b081bd.chunk.css.map b/build/static/css/2.84b081bd.chunk.css.map deleted file mode 100644 index 1bb899f..0000000 --- a/build/static/css/2.84b081bd.chunk.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.css"],"names":[],"mappings":"AAIA,YACE,YAAa,CACb,SAAU,CACV,qBAAsB,CAEtB,YAAa,CACb,kBACF,CACA,0BAEE,qBACF,CACA,iCACE,kBACF,CACA,kGAEE,OACF,CACA,sCAEE,aACF,CACA,mBACE,WAAY,CACZ,cAAe,CACf,qBAA0B,CAC1B,gBAAiB,CACjB,kBACF,CACA,mBACE,iBAAkB,CAClB,qBAA0B,CAC1B,cAAe,CACf,kBACF,CACA,oBACE,SAAU,CAEV,YACF,CACA,kBACE,iBAAkB,CAElB,WAAY,CACZ,kBAAmB,CACnB,kBACF,CACA,2BACE,WAAY,CACZ,gBAAkB,CAClB,gBACF,CACA,+DACE,UACF,CACA,8BACE,mBACF,CACA,wBACE,OACF,CACA,0BACE,cAAe,CACf,QAAS,CACT,SAAU,CACV,WAAY,CACZ,UAAW,CACX,gBAAiB,CACjB,iBAAkB,CAClB,kBAAmB,CACnB,cAAe,CACf,kBACF,CACA,+BACE,eACF,CACA,qCACE,iBAAkB,CAClB,QAAS,CACT,WAAY,CACZ,SAAU,CACV,UAAW,CACX,WAAY,CACZ,UAAW,CACX,cAAe,CACf,gBAAiB,CACjB,iBAAkB,CAClB,kBAAmB,CACnB,yBAA0B,CAC1B,cAAe,CACf,8BACF,CACA,2CACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,kBAAoB,CACpB,UACF,CACA,iDACE,6BACF,CACA,2CACE,UAAW,CACX,yBACF,CACA,wBACE,eACF,CAKA,+GAHE,qBAA0B,CAC1B,eAKF,CACA,gBACE,aACF,CA3HA,WACE,qBAAsB,CAGtB,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,mCAA6B,CAC7B,mBAAoB,CACpB,iBAAkB,CAClB,SAAU,CACV,UAAW,CACX,4BAA6B,CAC7B,aAAc,CACd,gBACF,CACA,qDAEE,cAAe,CACf,SAAU,CACV,8BAAgC,CACxB,sBAAwB,CAChC,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,gBACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,YAAa,CACb,WAAY,CACZ,gCACF,CACA,uBACE,YACF,CACA,gBACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,aAAc,CACd,SAAU,CACV,gCAAiC,CAGjC,YAFF,CAIA,iBACE,QAAS,CACT,qBAA0B,CAC1B,eAAgB,CAChB,cAAe,CACf,gBAAiB,CACjB,oBACF,CACA,mBACE,iBAAkB,CAClB,qBAAsB,CACtB,2BAA4B,CAC5B,QAAS,CACT,iBAAkB,CAClB,qGAAoH,CACpH,mBACF,CACA,iBACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,UAAW,CACX,SAAU,CACV,qBAA0B,CAC1B,eAAgB,CAChB,aAAc,CACd,oBAAqB,CACrB,sBAAuB,CACvB,QAAS,CACT,SAAU,CACV,cAAe,CACf,oBACF,CACA,mBACE,aAAc,CACd,UAAW,CACX,WAAY,CACZ,cAAe,CACf,iBAAkB,CAClB,gBAAiB,CACjB,iBAAkB,CAClB,mBAAoB,CACpB,mBACF,CACA,8CAEE,qBAA0B,CAC1B,oBACF,CACA,kBACE,iBAAkB,CAClB,qBAA0B,CAC1B,eAAgB,CAChB,+BAAgC,CAChC,yBACF,CACA,gBACE,YAAa,CACb,cAAe,CACf,kBAAmB,CACnB,oBACF,CACA,kBACE,iBAAkB,CAClB,gBAAiB,CACjB,sBAAuB,CACvB,4BAA6B,CAC7B,yBACF,CACA,+DACE,eAAgB,CAChB,eACF,CACA,gBACE,eACF,CACA,oBACE,iBACF,CACA,2BACE,oBAAqB,CACrB,OAAQ,CACR,WAAY,CACZ,qBAAsB,CACtB,UACF,CACA,+BACE,KAAM,CACN,oBAAqB,CACrB,gBAAiB,CACjB,eAAgB,CAChB,qBACF,CACA,yBACE,WACE,4BAA6B,CAC7B,eACF,CACA,+BACE,QACF,CACF,CACA,qCACE,YACF,CACA,mCACE,sBACF,CACA,uCACE,aAAc,CACd,UACF,CACA,sCACE,aAAc,CACd,UAAW,CACX,UACF,CACA,iDACE,aAAc,CACd,eAAgB,CAChB,qBAA0B,CAC1B,eAAgB,CAChB,cAAe,CACf,eACF,CACA,mDACE,cAAe,CACf,qBAA0B,CAC1B,cACF,CACA,iCACE,UAAW,CACX,iBAAkB,CAClB,cACF,CACA,qFACE,gBACF,CACA,2CACE,WAAY,CACZ,eACF,CACA,6DACE,eAAgB,CAChB,eACF,CACA,0DACE,aACF,CACA,wHAEE,aACF,CACA,yDACE,aACF,CACA,4DACE,aACF,CACA,oBACE,aACF,CACA,qCACE,UAAc,CACd,MACF,CACA,sCACE,eACF,CACA,wDACE,gBAAiB,CACjB,aACF,CACA,4CACE,aACF,CACA,qDACE,WAAY,CACZ,cAAe,CACf,gBACF,CACA,yGACE,iBAAkB,CAClB,aACF,CACA,4CACE,UACF,CACA,8DACE,gBAAiB,CACjB,aACF,CACA,kDACE,gBACF","file":"2.84b081bd.chunk.css","sourcesContent":["/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-modal {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n pointer-events: none;\n position: relative;\n top: 100px;\n width: auto;\n max-width: calc(100vw - 32px);\n margin: 0 auto;\n padding-bottom: 24px;\n}\n.ant-modal.ant-zoom-enter,\n.ant-modal.ant-zoom-appear {\n transform: none;\n opacity: 0;\n -webkit-animation-duration: 0.3s;\n animation-duration: 0.3s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-modal-mask {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1000;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.45);\n}\n.ant-modal-mask-hidden {\n display: none;\n}\n.ant-modal-wrap {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: auto;\n outline: 0;\n -webkit-overflow-scrolling: touch;\n}\n.ant-modal-wrap {\n z-index: 1000;\n}\n.ant-modal-title {\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n word-wrap: break-word;\n}\n.ant-modal-content {\n position: relative;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n pointer-events: auto;\n}\n.ant-modal-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 10;\n padding: 0;\n color: rgba(0, 0, 0, 0.45);\n font-weight: 700;\n line-height: 1;\n text-decoration: none;\n background: transparent;\n border: 0;\n outline: 0;\n cursor: pointer;\n transition: color 0.3s;\n}\n.ant-modal-close-x {\n display: block;\n width: 56px;\n height: 56px;\n font-size: 16px;\n font-style: normal;\n line-height: 56px;\n text-align: center;\n text-transform: none;\n text-rendering: auto;\n}\n.ant-modal-close:focus,\n.ant-modal-close:hover {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n}\n.ant-modal-header {\n padding: 16px 24px;\n color: rgba(0, 0, 0, 0.85);\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n border-radius: 2px 2px 0 0;\n}\n.ant-modal-body {\n padding: 24px;\n font-size: 14px;\n line-height: 1.5715;\n word-wrap: break-word;\n}\n.ant-modal-footer {\n padding: 10px 16px;\n text-align: right;\n background: transparent;\n border-top: 1px solid #f0f0f0;\n border-radius: 0 0 2px 2px;\n}\n.ant-modal-footer .ant-btn + .ant-btn:not(.ant-dropdown-trigger) {\n margin-bottom: 0;\n margin-left: 8px;\n}\n.ant-modal-open {\n overflow: hidden;\n}\n.ant-modal-centered {\n text-align: center;\n}\n.ant-modal-centered::before {\n display: inline-block;\n width: 0;\n height: 100%;\n vertical-align: middle;\n content: '';\n}\n.ant-modal-centered .ant-modal {\n top: 0;\n display: inline-block;\n padding-bottom: 0;\n text-align: left;\n vertical-align: middle;\n}\n@media (max-width: 767px) {\n .ant-modal {\n max-width: calc(100vw - 16px);\n margin: 8px auto;\n }\n .ant-modal-centered .ant-modal {\n flex: 1;\n }\n}\n.ant-modal-confirm .ant-modal-header {\n display: none;\n}\n.ant-modal-confirm .ant-modal-body {\n padding: 32px 32px 24px;\n}\n.ant-modal-confirm-body-wrapper::before {\n display: table;\n content: '';\n}\n.ant-modal-confirm-body-wrapper::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-modal-confirm-body .ant-modal-confirm-title {\n display: block;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n font-size: 16px;\n line-height: 1.4;\n}\n.ant-modal-confirm-body .ant-modal-confirm-content {\n margin-top: 8px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-modal-confirm-body > .anticon {\n float: left;\n margin-right: 16px;\n font-size: 22px;\n}\n.ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\n margin-left: 38px;\n}\n.ant-modal-confirm .ant-modal-confirm-btns {\n float: right;\n margin-top: 24px;\n}\n.ant-modal-confirm .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-bottom: 0;\n margin-left: 8px;\n}\n.ant-modal-confirm-error .ant-modal-confirm-body > .anticon {\n color: #ff4d4f;\n}\n.ant-modal-confirm-warning .ant-modal-confirm-body > .anticon,\n.ant-modal-confirm-confirm .ant-modal-confirm-body > .anticon {\n color: #faad14;\n}\n.ant-modal-confirm-info .ant-modal-confirm-body > .anticon {\n color: #1890ff;\n}\n.ant-modal-confirm-success .ant-modal-confirm-body > .anticon {\n color: #52c41a;\n}\n.ant-modal-wrap-rtl {\n direction: rtl;\n}\n.ant-modal-wrap-rtl .ant-modal-close {\n right: initial;\n left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-footer {\n text-align: left;\n}\n.ant-modal-wrap-rtl .ant-modal-footer .ant-btn + .ant-btn {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body {\n direction: rtl;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon {\n float: right;\n margin-right: 0;\n margin-left: 16px;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-body > .anticon + .ant-modal-confirm-title + .ant-modal-confirm-content {\n margin-right: 38px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-btns {\n float: left;\n}\n.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn + .ant-btn {\n margin-right: 8px;\n margin-left: 0;\n}\n.ant-modal-wrap-rtl.ant-modal-centered .ant-modal {\n text-align: right;\n}\n"]} \ No newline at end of file diff --git a/build/static/css/3.7f9fe742.chunk.css b/build/static/css/3.7f9fe742.chunk.css deleted file mode 100644 index d75b48e..0000000 --- a/build/static/css/3.7f9fe742.chunk.css +++ /dev/null @@ -1,2 +0,0 @@ -[class*=ant-]::-ms-clear,[class*=ant-] input::-ms-clear,[class*=ant-] input::-ms-reveal,[class^=ant-]::-ms-clear,[class^=ant-] input::-ms-clear,[class^=ant-] input::-ms-reveal{display:none}body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0;color:rgba(0,0,0,.85);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-variant:tabular-nums;line-height:1.5715;background-color:#fff;font-feature-settings:"tnum","tnum"}[tabindex="-1"]:focus{outline:none!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#1890ff;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;transition:color .3s;-webkit-text-decoration-skip:objects}a:hover{color:#40a9ff}a:active{color:#096dd9}a:active,a:focus,a:hover{text-decoration:none;outline:0}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed}code,kbd,pre,samp{font-size:1em;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}::-moz-selection{color:#fff;background:#1890ff}::selection{color:#fff;background:#1890ff}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}.anticon{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon>.anticon{line-height:0;vertical-align:0}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin:before{display:inline-block;-webkit-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-fade-appear.ant-fade-appear-active,.ant-fade-enter.ant-fade-enter-active{-webkit-animation-name:antFadeIn;animation-name:antFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-fade-leave.ant-fade-leave-active{-webkit-animation-name:antFadeOut;animation-name:antFadeOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-fade-appear,.ant-fade-enter{opacity:0}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.ant-move-up-appear,.ant-move-up-enter,.ant-move-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-move-up-appear.ant-move-up-appear-active,.ant-move-up-enter.ant-move-up-enter-active{-webkit-animation-name:antMoveUpIn;animation-name:antMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-move-up-leave.ant-move-up-leave-active{-webkit-animation-name:antMoveUpOut;animation-name:antMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-up-appear,.ant-move-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-up-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-down-appear,.ant-move-down-enter,.ant-move-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-move-down-appear.ant-move-down-appear-active,.ant-move-down-enter.ant-move-down-enter-active{-webkit-animation-name:antMoveDownIn;animation-name:antMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-move-down-leave.ant-move-down-leave-active{-webkit-animation-name:antMoveDownOut;animation-name:antMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-down-appear,.ant-move-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-down-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-left-appear,.ant-move-left-enter,.ant-move-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-move-left-appear.ant-move-left-appear-active,.ant-move-left-enter.ant-move-left-enter-active{-webkit-animation-name:antMoveLeftIn;animation-name:antMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-move-left-leave.ant-move-left-leave-active{-webkit-animation-name:antMoveLeftOut;animation-name:antMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-left-appear,.ant-move-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-left-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-right-appear,.ant-move-right-enter,.ant-move-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-move-right-appear.ant-move-right-appear-active,.ant-move-right-enter.ant-move-right-enter-active{-webkit-animation-name:antMoveRightIn;animation-name:antMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-move-right-leave.ant-move-right-leave-active{-webkit-animation-name:antMoveRightOut;animation-name:antMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-right-appear,.ant-move-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-right-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn{0%{transform:translateY(100%);transform-origin:0 0;opacity:0}to{transform:translateY(0);transform-origin:0 0;opacity:1}}@keyframes antMoveDownIn{0%{transform:translateY(100%);transform-origin:0 0;opacity:0}to{transform:translateY(0);transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveDownOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}to{transform:translateY(100%);transform-origin:0 0;opacity:0}}@keyframes antMoveDownOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}to{transform:translateY(100%);transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveLeftIn{0%{transform:translateX(-100%);transform-origin:0 0;opacity:0}to{transform:translateX(0);transform-origin:0 0;opacity:1}}@keyframes antMoveLeftIn{0%{transform:translateX(-100%);transform-origin:0 0;opacity:0}to{transform:translateX(0);transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveLeftOut{0%{transform:translateX(0);transform-origin:0 0;opacity:1}to{transform:translateX(-100%);transform-origin:0 0;opacity:0}}@keyframes antMoveLeftOut{0%{transform:translateX(0);transform-origin:0 0;opacity:1}to{transform:translateX(-100%);transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveRightIn{0%{transform:translateX(100%);transform-origin:0 0;opacity:0}to{transform:translateX(0);transform-origin:0 0;opacity:1}}@keyframes antMoveRightIn{0%{transform:translateX(100%);transform-origin:0 0;opacity:0}to{transform:translateX(0);transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveRightOut{0%{transform:translateX(0);transform-origin:0 0;opacity:1}to{transform:translateX(100%);transform-origin:0 0;opacity:0}}@keyframes antMoveRightOut{0%{transform:translateX(0);transform-origin:0 0;opacity:1}to{transform:translateX(100%);transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveUpIn{0%{transform:translateY(-100%);transform-origin:0 0;opacity:0}to{transform:translateY(0);transform-origin:0 0;opacity:1}}@keyframes antMoveUpIn{0%{transform:translateY(-100%);transform-origin:0 0;opacity:0}to{transform:translateY(0);transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveUpOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}to{transform:translateY(-100%);transform-origin:0 0;opacity:0}}@keyframes antMoveUpOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}to{transform:translateY(-100%);transform-origin:0 0;opacity:0}}@-webkit-keyframes loadingCircle{to{transform:rotate(1turn)}}@keyframes loadingCircle{to{transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:#1890ff;--scroll-bar:0}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;-webkit-animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}@-webkit-keyframes waveEffect{to{box-shadow:0 0 0 #1890ff;box-shadow:0 0 0 6px #1890ff;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect{to{box-shadow:0 0 0 #1890ff;box-shadow:0 0 0 6px #1890ff;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect{to{opacity:0}}@keyframes fadeEffect{to{opacity:0}}.ant-slide-up-appear,.ant-slide-up-enter,.ant-slide-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-slide-up-appear.ant-slide-up-appear-active,.ant-slide-up-enter.ant-slide-up-enter-active{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-slide-up-leave.ant-slide-up-leave-active{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-up-appear,.ant-slide-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-up-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-down-appear,.ant-slide-down-enter,.ant-slide-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-slide-down-appear.ant-slide-down-appear-active,.ant-slide-down-enter.ant-slide-down-enter-active{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-slide-down-leave.ant-slide-down-leave-active{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-down-appear,.ant-slide-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-down-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-left-appear,.ant-slide-left-enter,.ant-slide-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-slide-left-appear.ant-slide-left-appear-active,.ant-slide-left-enter.ant-slide-left-enter-active{-webkit-animation-name:antSlideLeftIn;animation-name:antSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-slide-left-leave.ant-slide-left-leave-active{-webkit-animation-name:antSlideLeftOut;animation-name:antSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-left-appear,.ant-slide-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-left-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-right-appear,.ant-slide-right-enter,.ant-slide-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-slide-right-appear.ant-slide-right-appear-active,.ant-slide-right-enter.ant-slide-right-enter-active{-webkit-animation-name:antSlideRightIn;animation-name:antSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-slide-right-leave.ant-slide-right-leave-active{-webkit-animation-name:antSlideRightOut;animation-name:antSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-right-appear,.ant-slide-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-right-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn{0%{transform:scaleY(.8);transform-origin:0 0;opacity:0}to{transform:scaleY(1);transform-origin:0 0;opacity:1}}@keyframes antSlideUpIn{0%{transform:scaleY(.8);transform-origin:0 0;opacity:0}to{transform:scaleY(1);transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideUpOut{0%{transform:scaleY(1);transform-origin:0 0;opacity:1}to{transform:scaleY(.8);transform-origin:0 0;opacity:0}}@keyframes antSlideUpOut{0%{transform:scaleY(1);transform-origin:0 0;opacity:1}to{transform:scaleY(.8);transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideDownIn{0%{transform:scaleY(.8);transform-origin:100% 100%;opacity:0}to{transform:scaleY(1);transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownIn{0%{transform:scaleY(.8);transform-origin:100% 100%;opacity:0}to{transform:scaleY(1);transform-origin:100% 100%;opacity:1}}@-webkit-keyframes antSlideDownOut{0%{transform:scaleY(1);transform-origin:100% 100%;opacity:1}to{transform:scaleY(.8);transform-origin:100% 100%;opacity:0}}@keyframes antSlideDownOut{0%{transform:scaleY(1);transform-origin:100% 100%;opacity:1}to{transform:scaleY(.8);transform-origin:100% 100%;opacity:0}}@-webkit-keyframes antSlideLeftIn{0%{transform:scaleX(.8);transform-origin:0 0;opacity:0}to{transform:scaleX(1);transform-origin:0 0;opacity:1}}@keyframes antSlideLeftIn{0%{transform:scaleX(.8);transform-origin:0 0;opacity:0}to{transform:scaleX(1);transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideLeftOut{0%{transform:scaleX(1);transform-origin:0 0;opacity:1}to{transform:scaleX(.8);transform-origin:0 0;opacity:0}}@keyframes antSlideLeftOut{0%{transform:scaleX(1);transform-origin:0 0;opacity:1}to{transform:scaleX(.8);transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideRightIn{0%{transform:scaleX(.8);transform-origin:100% 0;opacity:0}to{transform:scaleX(1);transform-origin:100% 0;opacity:1}}@keyframes antSlideRightIn{0%{transform:scaleX(.8);transform-origin:100% 0;opacity:0}to{transform:scaleX(1);transform-origin:100% 0;opacity:1}}@-webkit-keyframes antSlideRightOut{0%{transform:scaleX(1);transform-origin:100% 0;opacity:1}to{transform:scaleX(.8);transform-origin:100% 0;opacity:0}}@keyframes antSlideRightOut{0%{transform:scaleX(1);transform-origin:100% 0;opacity:1}to{transform:scaleX(.8);transform-origin:100% 0;opacity:0}}.ant-zoom-appear,.ant-zoom-enter,.ant-zoom-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-appear.ant-zoom-appear-active,.ant-zoom-enter.ant-zoom-enter-active{-webkit-animation-name:antZoomIn;animation-name:antZoomIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-leave.ant-zoom-leave-active{-webkit-animation-name:antZoomOut;animation-name:antZoomOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-appear,.ant-zoom-enter{transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-appear-prepare,.ant-zoom-enter-prepare{transform:none}.ant-zoom-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-appear,.ant-zoom-big-enter,.ant-zoom-big-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-big-appear.ant-zoom-big-appear-active,.ant-zoom-big-enter.ant-zoom-big-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-big-leave.ant-zoom-big-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-big-appear,.ant-zoom-big-enter{transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-big-appear-prepare,.ant-zoom-big-enter-prepare{transform:none}.ant-zoom-big-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter,.ant-zoom-big-fast-leave{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active,.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter{transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-big-fast-appear-prepare,.ant-zoom-big-fast-enter-prepare{transform:none}.ant-zoom-big-fast-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-up-appear,.ant-zoom-up-enter,.ant-zoom-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-up-appear.ant-zoom-up-appear-active,.ant-zoom-up-enter.ant-zoom-up-enter-active{-webkit-animation-name:antZoomUpIn;animation-name:antZoomUpIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-up-leave.ant-zoom-up-leave-active{-webkit-animation-name:antZoomUpOut;animation-name:antZoomUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-up-appear,.ant-zoom-up-enter{transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-up-appear-prepare,.ant-zoom-up-enter-prepare{transform:none}.ant-zoom-up-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-down-appear,.ant-zoom-down-enter,.ant-zoom-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-down-appear.ant-zoom-down-appear-active,.ant-zoom-down-enter.ant-zoom-down-enter-active{-webkit-animation-name:antZoomDownIn;animation-name:antZoomDownIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-down-leave.ant-zoom-down-leave-active{-webkit-animation-name:antZoomDownOut;animation-name:antZoomDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-down-appear,.ant-zoom-down-enter{transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-down-appear-prepare,.ant-zoom-down-enter-prepare{transform:none}.ant-zoom-down-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-left-appear,.ant-zoom-left-enter,.ant-zoom-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-left-appear.ant-zoom-left-appear-active,.ant-zoom-left-enter.ant-zoom-left-enter-active{-webkit-animation-name:antZoomLeftIn;animation-name:antZoomLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-left-leave.ant-zoom-left-leave-active{-webkit-animation-name:antZoomLeftOut;animation-name:antZoomLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-left-appear,.ant-zoom-left-enter{transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-left-appear-prepare,.ant-zoom-left-enter-prepare{transform:none}.ant-zoom-left-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-right-appear,.ant-zoom-right-enter,.ant-zoom-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-right-appear.ant-zoom-right-appear-active,.ant-zoom-right-enter.ant-zoom-right-enter-active{-webkit-animation-name:antZoomRightIn;animation-name:antZoomRightIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-right-leave.ant-zoom-right-leave-active{-webkit-animation-name:antZoomRightOut;animation-name:antZoomRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-right-appear,.ant-zoom-right-enter{transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-right-appear-prepare,.ant-zoom-right-enter-prepare{transform:none}.ant-zoom-right-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn{0%{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}@keyframes antZoomIn{0%{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}@-webkit-keyframes antZoomOut{0%{transform:scale(1)}to{transform:scale(.2);opacity:0}}@keyframes antZoomOut{0%{transform:scale(1)}to{transform:scale(.2);opacity:0}}@-webkit-keyframes antZoomBigIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes antZoomBigIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@-webkit-keyframes antZoomBigOut{0%{transform:scale(1)}to{transform:scale(.8);opacity:0}}@keyframes antZoomBigOut{0%{transform:scale(1)}to{transform:scale(.8);opacity:0}}@-webkit-keyframes antZoomUpIn{0%{transform:scale(.8);transform-origin:50% 0;opacity:0}to{transform:scale(1);transform-origin:50% 0}}@keyframes antZoomUpIn{0%{transform:scale(.8);transform-origin:50% 0;opacity:0}to{transform:scale(1);transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut{0%{transform:scale(1);transform-origin:50% 0}to{transform:scale(.8);transform-origin:50% 0;opacity:0}}@keyframes antZoomUpOut{0%{transform:scale(1);transform-origin:50% 0}to{transform:scale(.8);transform-origin:50% 0;opacity:0}}@-webkit-keyframes antZoomLeftIn{0%{transform:scale(.8);transform-origin:0 50%;opacity:0}to{transform:scale(1);transform-origin:0 50%}}@keyframes antZoomLeftIn{0%{transform:scale(.8);transform-origin:0 50%;opacity:0}to{transform:scale(1);transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut{0%{transform:scale(1);transform-origin:0 50%}to{transform:scale(.8);transform-origin:0 50%;opacity:0}}@keyframes antZoomLeftOut{0%{transform:scale(1);transform-origin:0 50%}to{transform:scale(.8);transform-origin:0 50%;opacity:0}}@-webkit-keyframes antZoomRightIn{0%{transform:scale(.8);transform-origin:100% 50%;opacity:0}to{transform:scale(1);transform-origin:100% 50%}}@keyframes antZoomRightIn{0%{transform:scale(.8);transform-origin:100% 50%;opacity:0}to{transform:scale(1);transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut{0%{transform:scale(1);transform-origin:100% 50%}to{transform:scale(.8);transform-origin:100% 50%;opacity:0}}@keyframes antZoomRightOut{0%{transform:scale(1);transform-origin:100% 50%}to{transform:scale(.8);transform-origin:100% 50%;opacity:0}}@-webkit-keyframes antZoomDownIn{0%{transform:scale(.8);transform-origin:50% 100%;opacity:0}to{transform:scale(1);transform-origin:50% 100%}}@keyframes antZoomDownIn{0%{transform:scale(.8);transform-origin:50% 100%;opacity:0}to{transform:scale(1);transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut{0%{transform:scale(1);transform-origin:50% 100%}to{transform:scale(.8);transform-origin:50% 100%;opacity:0}}@keyframes antZoomDownOut{0%{transform:scale(1);transform-origin:50% 100%}to{transform:scale(.8);transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse,.ant-motion-collapse-legacy-active{transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden}.ant-popover{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:absolute;top:0;left:0;z-index:1030;font-weight:400;white-space:normal;text-align:left;cursor:auto;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ant-popover-content{position:relative}.ant-popover:after{position:absolute;background:hsla(0,0%,100%,.01);content:""}.ant-popover-hidden{display:none}.ant-popover-placement-top,.ant-popover-placement-topLeft,.ant-popover-placement-topRight{padding-bottom:15.3137085px}.ant-popover-placement-right,.ant-popover-placement-rightBottom,.ant-popover-placement-rightTop{padding-left:15.3137085px}.ant-popover-placement-bottom,.ant-popover-placement-bottomLeft,.ant-popover-placement-bottomRight{padding-top:15.3137085px}.ant-popover-placement-left,.ant-popover-placement-leftBottom,.ant-popover-placement-leftTop{padding-right:15.3137085px}.ant-popover-inner{background-color:#fff;background-clip:padding-box;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 0 8px rgba(0,0,0,.15)\9}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-popover-inner{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}}.ant-popover-title{min-width:177px;min-height:32px;margin:0;padding:5px 16px 4px;color:rgba(0,0,0,.85);font-weight:500;border-bottom:1px solid #f0f0f0}.ant-popover-inner-content{padding:12px 16px;color:rgba(0,0,0,.85)}.ant-popover-message{position:relative;padding:4px 0 12px;color:rgba(0,0,0,.85);font-size:14px}.ant-popover-message>.anticon{position:absolute;top:8.0005px;color:#faad14;font-size:14px}.ant-popover-message-title{padding-left:22px}.ant-popover-buttons{margin-bottom:4px;text-align:right}.ant-popover-buttons button{margin-left:8px}.ant-popover-arrow{position:absolute;display:block;width:22px;height:22px;overflow:hidden;background:transparent;pointer-events:none}.ant-popover-arrow-content{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:11.3137085px;height:11.3137085px;margin:auto;background-color:#fff;content:"";pointer-events:auto;border-radius:0 0 2px;pointer-events:none}.ant-popover-arrow-content:before{position:absolute;top:-11.3137085px;left:-11.3137085px;width:33.9411255px;height:33.9411255px;background:#fff;background-repeat:no-repeat;background-position:-10px -10px;content:"";-webkit-clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z")}.ant-popover-placement-top .ant-popover-arrow,.ant-popover-placement-topLeft .ant-popover-arrow,.ant-popover-placement-topRight .ant-popover-arrow{bottom:0;transform:translateY(100%)}.ant-popover-placement-top .ant-popover-arrow-content,.ant-popover-placement-topLeft .ant-popover-arrow-content,.ant-popover-placement-topRight .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-11px) rotate(45deg)}.ant-popover-placement-top .ant-popover-arrow{left:50%;transform:translateY(100%) translateX(-50%)}.ant-popover-placement-topLeft .ant-popover-arrow{left:16px}.ant-popover-placement-topRight .ant-popover-arrow{right:16px}.ant-popover-placement-right .ant-popover-arrow,.ant-popover-placement-rightBottom .ant-popover-arrow,.ant-popover-placement-rightTop .ant-popover-arrow{left:0;transform:translateX(-100%)}.ant-popover-placement-right .ant-popover-arrow-content,.ant-popover-placement-rightBottom .ant-popover-arrow-content,.ant-popover-placement-rightTop .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateX(11px) rotate(135deg)}.ant-popover-placement-right .ant-popover-arrow{top:50%;transform:translateX(-100%) translateY(-50%)}.ant-popover-placement-rightTop .ant-popover-arrow{top:12px}.ant-popover-placement-rightBottom .ant-popover-arrow{bottom:12px}.ant-popover-placement-bottom .ant-popover-arrow,.ant-popover-placement-bottomLeft .ant-popover-arrow,.ant-popover-placement-bottomRight .ant-popover-arrow{top:0;transform:translateY(-100%)}.ant-popover-placement-bottom .ant-popover-arrow-content,.ant-popover-placement-bottomLeft .ant-popover-arrow-content,.ant-popover-placement-bottomRight .ant-popover-arrow-content{box-shadow:2px 2px 5px rgba(0,0,0,.06);transform:translateY(11px) rotate(-135deg)}.ant-popover-placement-bottom .ant-popover-arrow{left:50%;transform:translateY(-100%) translateX(-50%)}.ant-popover-placement-bottomLeft .ant-popover-arrow{left:16px}.ant-popover-placement-bottomRight .ant-popover-arrow{right:16px}.ant-popover-placement-left .ant-popover-arrow,.ant-popover-placement-leftBottom .ant-popover-arrow,.ant-popover-placement-leftTop .ant-popover-arrow{right:0;transform:translateX(100%)}.ant-popover-placement-left .ant-popover-arrow-content,.ant-popover-placement-leftBottom .ant-popover-arrow-content,.ant-popover-placement-leftTop .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateX(-11px) rotate(-45deg)}.ant-popover-placement-left .ant-popover-arrow{top:50%;transform:translateX(100%) translateY(-50%)}.ant-popover-placement-leftTop .ant-popover-arrow{top:12px}.ant-popover-placement-leftBottom .ant-popover-arrow{bottom:12px}.ant-popover-magenta .ant-popover-arrow-content,.ant-popover-magenta .ant-popover-inner,.ant-popover-pink .ant-popover-arrow-content,.ant-popover-pink .ant-popover-inner{background-color:#eb2f96}.ant-popover-red .ant-popover-arrow-content,.ant-popover-red .ant-popover-inner{background-color:#f5222d}.ant-popover-volcano .ant-popover-arrow-content,.ant-popover-volcano .ant-popover-inner{background-color:#fa541c}.ant-popover-orange .ant-popover-arrow-content,.ant-popover-orange .ant-popover-inner{background-color:#fa8c16}.ant-popover-yellow .ant-popover-arrow-content,.ant-popover-yellow .ant-popover-inner{background-color:#fadb14}.ant-popover-gold .ant-popover-arrow-content,.ant-popover-gold .ant-popover-inner{background-color:#faad14}.ant-popover-cyan .ant-popover-arrow-content,.ant-popover-cyan .ant-popover-inner{background-color:#13c2c2}.ant-popover-lime .ant-popover-arrow-content,.ant-popover-lime .ant-popover-inner{background-color:#a0d911}.ant-popover-green .ant-popover-arrow-content,.ant-popover-green .ant-popover-inner{background-color:#52c41a}.ant-popover-blue .ant-popover-arrow-content,.ant-popover-blue .ant-popover-inner{background-color:#1890ff}.ant-popover-geekblue .ant-popover-arrow-content,.ant-popover-geekblue .ant-popover-inner{background-color:#2f54eb}.ant-popover-purple .ant-popover-arrow-content,.ant-popover-purple .ant-popover-inner{background-color:#722ed1}.ant-popover-rtl{direction:rtl;text-align:right}.ant-popover-rtl .ant-popover-message-title{padding-right:22px;padding-left:16px}.ant-popover-rtl .ant-popover-buttons{text-align:left}.ant-popover-rtl .ant-popover-buttons button{margin-right:8px;margin-left:0}.ant-btn{line-height:1.5715;position:relative;display:inline-block;font-weight:400;white-space:nowrap;text-align:center;background-image:none;box-shadow:0 2px 0 rgba(0,0,0,.015);cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:manipulation;height:32px;padding:4px 15px;font-size:14px;border-radius:2px;color:rgba(0,0,0,.85);border:1px solid #d9d9d9;background:#fff}.ant-btn>.anticon{line-height:1}.ant-btn,.ant-btn:active,.ant-btn:focus{outline:0}.ant-btn:not([disabled]):hover{text-decoration:none}.ant-btn:not([disabled]):active{outline:0;box-shadow:none}.ant-btn[disabled]{cursor:not-allowed}.ant-btn[disabled]>*{pointer-events:none}.ant-btn-lg{height:40px;padding:6.4px 15px;font-size:16px;border-radius:2px}.ant-btn-sm{height:24px;padding:0 7px;font-size:14px;border-radius:2px}.ant-btn>a:only-child{color:currentcolor}.ant-btn>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn:focus,.ant-btn:hover{color:#40a9ff;border-color:#40a9ff;background:#fff}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentcolor}.ant-btn:focus>a:only-child:after,.ant-btn:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn:active{color:#096dd9;border-color:#096dd9;background:#fff}.ant-btn:active>a:only-child{color:currentcolor}.ant-btn:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn[disabled],.ant-btn[disabled]:active,.ant-btn[disabled]:focus,.ant-btn[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;box-shadow:none}.ant-btn[disabled]:active>a:only-child,.ant-btn[disabled]:focus>a:only-child,.ant-btn[disabled]:hover>a:only-child,.ant-btn[disabled]>a:only-child{color:currentcolor}.ant-btn[disabled]:active>a:only-child:after,.ant-btn[disabled]:focus>a:only-child:after,.ant-btn[disabled]:hover>a:only-child:after,.ant-btn[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn:active,.ant-btn:focus,.ant-btn:hover{text-decoration:none;background:#fff}.ant-btn>span{display:inline-block}.ant-btn-primary{color:#fff;border-color:#1890ff;background:#1890ff;text-shadow:0 -1px 0 rgba(0,0,0,.12);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary:focus,.ant-btn-primary:hover{color:#fff;border-color:#40a9ff;background:#40a9ff}.ant-btn-primary:focus>a:only-child,.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-primary:focus>a:only-child:after,.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary:active{color:#fff;border-color:#096dd9;background:#096dd9}.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary[disabled],.ant-btn-primary[disabled]:active,.ant-btn-primary[disabled]:focus,.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;box-shadow:none}.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#40a9ff;border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{color:rgba(0,0,0,.85);border-color:#d9d9d9;background:transparent}.ant-btn-ghost>a:only-child{color:currentcolor}.ant-btn-ghost>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;border-color:#40a9ff;background:transparent}.ant-btn-ghost:focus>a:only-child,.ant-btn-ghost:hover>a:only-child{color:currentcolor}.ant-btn-ghost:focus>a:only-child:after,.ant-btn-ghost:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost:active{color:#096dd9;border-color:#096dd9;background:transparent}.ant-btn-ghost:active>a:only-child{color:currentcolor}.ant-btn-ghost:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost[disabled],.ant-btn-ghost[disabled]:active,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;box-shadow:none}.ant-btn-ghost[disabled]:active>a:only-child,.ant-btn-ghost[disabled]:focus>a:only-child,.ant-btn-ghost[disabled]:hover>a:only-child,.ant-btn-ghost[disabled]>a:only-child{color:currentcolor}.ant-btn-ghost[disabled]:active>a:only-child:after,.ant-btn-ghost[disabled]:focus>a:only-child:after,.ant-btn-ghost[disabled]:hover>a:only-child:after,.ant-btn-ghost[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed{color:rgba(0,0,0,.85);border-color:#d9d9d9;background:#fff;border-style:dashed}.ant-btn-dashed>a:only-child{color:currentcolor}.ant-btn-dashed>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;border-color:#40a9ff;background:#fff}.ant-btn-dashed:focus>a:only-child,.ant-btn-dashed:hover>a:only-child{color:currentcolor}.ant-btn-dashed:focus>a:only-child:after,.ant-btn-dashed:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed:active{color:#096dd9;border-color:#096dd9;background:#fff}.ant-btn-dashed:active>a:only-child{color:currentcolor}.ant-btn-dashed:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed[disabled],.ant-btn-dashed[disabled]:active,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;box-shadow:none}.ant-btn-dashed[disabled]:active>a:only-child,.ant-btn-dashed[disabled]:focus>a:only-child,.ant-btn-dashed[disabled]:hover>a:only-child,.ant-btn-dashed[disabled]>a:only-child{color:currentcolor}.ant-btn-dashed[disabled]:active>a:only-child:after,.ant-btn-dashed[disabled]:focus>a:only-child:after,.ant-btn-dashed[disabled]:hover>a:only-child:after,.ant-btn-dashed[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger{color:#fff;border-color:#ff4d4f;background:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,.12);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-danger>a:only-child{color:currentcolor}.ant-btn-danger>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger:focus,.ant-btn-danger:hover{color:#fff;border-color:#ff7875;background:#ff7875}.ant-btn-danger:focus>a:only-child,.ant-btn-danger:hover>a:only-child{color:currentcolor}.ant-btn-danger:focus>a:only-child:after,.ant-btn-danger:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger:active{color:#fff;border-color:#d9363e;background:#d9363e}.ant-btn-danger:active>a:only-child{color:currentcolor}.ant-btn-danger:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger[disabled],.ant-btn-danger[disabled]:active,.ant-btn-danger[disabled]:focus,.ant-btn-danger[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;box-shadow:none}.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-danger[disabled]>a:only-child{color:currentcolor}.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-danger[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link{color:#1890ff;border-color:transparent;background:transparent;box-shadow:none}.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff;background:transparent}.ant-btn-link:focus>a:only-child,.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-link:focus>a:only-child:after,.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link:active{color:#096dd9;border-color:#096dd9;background:transparent}.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{border-color:#d9d9d9;background:#f5f5f5}.ant-btn-link:hover{background:transparent}.ant-btn-link:active,.ant-btn-link:focus,.ant-btn-link:hover{border-color:transparent}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);border-color:transparent;background:transparent;text-shadow:none;box-shadow:none}.ant-btn-link[disabled]:active>a:only-child,.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-text{color:rgba(0,0,0,.85);border-color:transparent;background:transparent;box-shadow:none}.ant-btn-text>a:only-child{color:currentcolor}.ant-btn-text>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-text:focus,.ant-btn-text:hover{color:#40a9ff;border-color:#40a9ff;background:transparent}.ant-btn-text:focus>a:only-child,.ant-btn-text:hover>a:only-child{color:currentcolor}.ant-btn-text:focus>a:only-child:after,.ant-btn-text:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-text:active{color:#096dd9;border-color:#096dd9;background:transparent}.ant-btn-text:active>a:only-child{color:currentcolor}.ant-btn-text:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{border-color:#d9d9d9;background:#f5f5f5}.ant-btn-text:focus,.ant-btn-text:hover{color:rgba(0,0,0,.85);background:rgba(0,0,0,.018);border-color:transparent}.ant-btn-text:active{color:rgba(0,0,0,.85);background:rgba(0,0,0,.028);border-color:transparent}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{color:rgba(0,0,0,.25);border-color:transparent;background:transparent;text-shadow:none;box-shadow:none}.ant-btn-text[disabled]:active>a:only-child,.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-text[disabled]>a:only-child{color:currentcolor}.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-text[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous{color:#ff4d4f;border-color:#ff4d4f;background:#fff}.ant-btn-dangerous>a:only-child{color:currentcolor}.ant-btn-dangerous>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous:focus,.ant-btn-dangerous:hover{color:#ff7875;border-color:#ff7875;background:#fff}.ant-btn-dangerous:focus>a:only-child,.ant-btn-dangerous:hover>a:only-child{color:currentcolor}.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-dangerous:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous:active{color:#d9363e;border-color:#d9363e;background:#fff}.ant-btn-dangerous:active>a:only-child{color:currentcolor}.ant-btn-dangerous:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous[disabled],.ant-btn-dangerous[disabled]:active,.ant-btn-dangerous[disabled]:focus,.ant-btn-dangerous[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;box-shadow:none}.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-dangerous[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-dangerous[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-primary{color:#fff;border-color:#ff4d4f;background:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,.12);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-dangerous.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-primary:focus,.ant-btn-dangerous.ant-btn-primary:hover{color:#fff;border-color:#ff7875;background:#ff7875}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-primary:active{color:#fff;border-color:#d9363e;background:#d9363e}.ant-btn-dangerous.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-primary[disabled],.ant-btn-dangerous.ant-btn-primary[disabled]:active,.ant-btn-dangerous.ant-btn-primary[disabled]:focus,.ant-btn-dangerous.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link{color:#ff4d4f;border-color:transparent;background:transparent;box-shadow:none}.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff}.ant-btn-dangerous.ant-btn-link:active{color:#096dd9;border-color:#096dd9}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{border-color:#d9d9d9;background:#f5f5f5}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{color:#ff7875;border-color:transparent;background:transparent}.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link:active{color:#d9363e;border-color:transparent;background:transparent}.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);border-color:transparent;background:transparent;text-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-text{color:#ff4d4f;border-color:transparent;background:transparent;box-shadow:none}.ant-btn-dangerous.ant-btn-text>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{color:#40a9ff;border-color:#40a9ff;background:transparent}.ant-btn-dangerous.ant-btn-text:active{color:#096dd9;border-color:#096dd9;background:transparent}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{border-color:#d9d9d9;background:#f5f5f5}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{color:#ff7875;border-color:transparent;background:rgba(0,0,0,.018)}.ant-btn-dangerous.ant-btn-text:focus>a:only-child,.ant-btn-dangerous.ant-btn-text:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-text:active{color:#d9363e;border-color:transparent;background:rgba(0,0,0,.028)}.ant-btn-dangerous.ant-btn-text:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{color:rgba(0,0,0,.25);border-color:transparent;background:transparent;text-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-icon-only{width:32px;height:32px;padding:2.4px 0;font-size:16px;border-radius:2px;vertical-align:-3px}.ant-btn-icon-only>*{font-size:16px}.ant-btn-icon-only.ant-btn-lg{width:40px;height:40px;padding:4.9px 0;font-size:18px;border-radius:2px}.ant-btn-icon-only.ant-btn-lg>*{font-size:18px}.ant-btn-icon-only.ant-btn-sm{width:24px;height:24px;padding:0;font-size:14px;border-radius:2px}.ant-btn-icon-only.ant-btn-sm>*{font-size:14px}.ant-btn-icon-only>.anticon{display:flex;justify-content:center}a.ant-btn-icon-only{vertical-align:-1px}a.ant-btn-icon-only>.anticon{display:inline}.ant-btn-round{height:32px;padding:4px 16px;font-size:14px;border-radius:32px}.ant-btn-round.ant-btn-lg{height:40px;padding:6.4px 20px;font-size:16px;border-radius:40px}.ant-btn-round.ant-btn-sm{height:24px;padding:0 12px;font-size:14px;border-radius:24px}.ant-btn-round.ant-btn-icon-only{width:auto}.ant-btn-circle{min-width:32px;padding-right:0;padding-left:0;text-align:center;border-radius:50%}.ant-btn-circle.ant-btn-lg{min-width:40px;border-radius:50%}.ant-btn-circle.ant-btn-sm{min-width:24px;border-radius:50%}.ant-btn:before{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:1;display:none;background:#fff;border-radius:inherit;opacity:.35;transition:opacity .2s;content:"";pointer-events:none}.ant-btn .anticon{transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn .anticon.anticon-minus>svg,.ant-btn .anticon.anticon-plus>svg{shape-rendering:optimizespeed}.ant-btn.ant-btn-loading{position:relative;cursor:default}.ant-btn.ant-btn-loading:before{display:block}.ant-btn>.ant-btn-loading-icon{transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1)}.ant-btn>.ant-btn-loading-icon .anticon{padding-right:8px;-webkit-animation:none;animation:none}.ant-btn>.ant-btn-loading-icon .anticon svg{-webkit-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite}.ant-btn-group{display:inline-flex}.ant-btn-group,.ant-btn-group>.ant-btn,.ant-btn-group>span>.ant-btn{position:relative}.ant-btn-group>.ant-btn:active,.ant-btn-group>.ant-btn:focus,.ant-btn-group>.ant-btn:hover,.ant-btn-group>span>.ant-btn:active,.ant-btn-group>span>.ant-btn:focus,.ant-btn-group>span>.ant-btn:hover{z-index:2}.ant-btn-group>.ant-btn[disabled],.ant-btn-group>span>.ant-btn[disabled]{z-index:0}.ant-btn-group .ant-btn-icon-only{font-size:14px}.ant-btn+.ant-btn-group,.ant-btn-group+.ant-btn,.ant-btn-group+.ant-btn-group,.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group .ant-btn+span,.ant-btn-group>span+span,.ant-btn-group span+.ant-btn{margin-left:-1px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:first-child,.ant-btn-group>span:first-child>.ant-btn{margin-left:0}.ant-btn-group>.ant-btn:only-child,.ant-btn-group>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-btn-group-sm>.ant-btn:only-child,.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-btn-group>.ant-btn-group{float:left}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{padding-right:8px;border-top-right-radius:0;border-bottom-right-radius:0}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{padding-left:8px;border-top-left-radius:0;border-bottom-left-radius:0}.ant-btn-group-rtl.ant-btn+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group-rtl.ant-btn-group .ant-btn+span,.ant-btn-group-rtl.ant-btn-group>span+span,.ant-btn-group-rtl.ant-btn-group span+.ant-btn,.ant-btn-rtl.ant-btn+.ant-btn-group,.ant-btn-rtl.ant-btn-group+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn-group,.ant-btn-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-rtl.ant-btn-group .ant-btn+span,.ant-btn-rtl.ant-btn-group>span+span,.ant-btn-rtl.ant-btn-group span+.ant-btn{margin-right:-1px;margin-left:auto}.ant-btn-group.ant-btn-group-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-radius:0 2px 2px 0}.ant-btn-group-rtl.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-radius:2px 0 0 2px}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-radius:0 2px 2px 0}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-radius:2px 0 0 2px}.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:8px}.ant-btn.ant-btn-background-ghost{color:#fff;border-color:#fff}.ant-btn.ant-btn-background-ghost,.ant-btn.ant-btn-background-ghost:active,.ant-btn.ant-btn-background-ghost:focus,.ant-btn.ant-btn-background-ghost:hover{background:transparent}.ant-btn.ant-btn-background-ghost:focus,.ant-btn.ant-btn-background-ghost:hover{color:#40a9ff;border-color:#40a9ff}.ant-btn.ant-btn-background-ghost:active{color:#096dd9;border-color:#096dd9}.ant-btn.ant-btn-background-ghost[disabled]{color:rgba(0,0,0,.25);background:transparent;border-color:#d9d9d9}.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;border-color:#1890ff;text-shadow:none}.ant-btn-background-ghost.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;border-color:#40a9ff}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;border-color:#096dd9}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger{color:#ff4d4f;border-color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-danger>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger:focus,.ant-btn-background-ghost.ant-btn-danger:hover{color:#ff7875;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger:active{color:#d9363e;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous{color:#ff4d4f;border-color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous:focus,.ant-btn-background-ghost.ant-btn-dangerous:hover{color:#ff7875;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous:active{color:#d9363e;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous[disabled],.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link{color:#ff4d4f;border-color:transparent;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover{color:#ff7875;border-color:transparent}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active{color:#d9363e;border-color:transparent}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-two-chinese-chars:first-letter{letter-spacing:.34em}.ant-btn-two-chinese-chars>:not(.anticon){margin-right:-.34em;letter-spacing:.34em}.ant-btn.ant-btn-block{width:100%}.ant-btn:empty{display:inline-block;width:0;visibility:hidden;content:"\a0"}a.ant-btn{padding-top:.01px!important;line-height:30px}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-btn-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-right-color:#40a9ff;border-left-color:#d9d9d9}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-right-color:#d9d9d9;border-left-color:#40a9ff}.ant-btn-rtl.ant-btn>.ant-btn-loading-icon .anticon{padding-right:0;padding-left:8px}.ant-btn>.ant-btn-loading-icon:only-child .anticon{padding-right:0;padding-left:0}.ant-btn-rtl.ant-btn>.anticon+span,.ant-btn-rtl.ant-btn>span+.anticon{margin-right:8px;margin-left:0}.ant-popconfirm{z-index:1060}.ant-input-affix-wrapper{position:relative;display:inline-block;width:100%;min-width:0;padding:4px 11px;color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s;display:inline-flex}.ant-input-affix-wrapper::-moz-placeholder{opacity:1}.ant-input-affix-wrapper:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input-affix-wrapper::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-affix-wrapper:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:-ms-input-placeholder{text-overflow:ellipsis}.ant-input-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:hover{border-color:#40a9ff;border-right-width:1px}.ant-input-rtl .ant-input-affix-wrapper:hover{border-right-width:0;border-left-width:1px!important}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{border-color:#40a9ff;box-shadow:0 0 0 2px rgba(24,144,255,.2);border-right-width:1px;outline:0}.ant-input-rtl .ant-input-affix-wrapper-focused,.ant-input-rtl .ant-input-affix-wrapper:focus{border-right-width:0;border-left-width:1px!important}.ant-input-affix-wrapper-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;cursor:not-allowed;opacity:1}.ant-input-affix-wrapper-disabled:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-affix-wrapper[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;cursor:not-allowed;opacity:1}.ant-input-affix-wrapper[disabled]:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-affix-wrapper-borderless,.ant-input-affix-wrapper-borderless-disabled,.ant-input-affix-wrapper-borderless-focused,.ant-input-affix-wrapper-borderless:focus,.ant-input-affix-wrapper-borderless:hover,.ant-input-affix-wrapper-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input-affix-wrapper{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-input-affix-wrapper-lg{padding:6.5px 11px;font-size:16px}.ant-input-affix-wrapper-sm{padding:0 7px}.ant-input-affix-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:#40a9ff;border-right-width:1px;z-index:1}.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-right-width:0;border-left-width:1px!important}.ant-input-search-with-button .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{z-index:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{z-index:1}.ant-input-affix-wrapper-disabled .ant-input[disabled]{background:transparent}.ant-input-affix-wrapper>input.ant-input{padding:0;border:none;outline:none}.ant-input-affix-wrapper>input.ant-input:focus{box-shadow:none!important}.ant-input-affix-wrapper:before{width:0;visibility:hidden;content:"\a0"}.ant-input-prefix,.ant-input-suffix{display:flex;flex:none;align-items:center}.ant-input-prefix>:not(:last-child),.ant-input-suffix>:not(:last-child){margin-right:8px}.ant-input-show-count-suffix{color:rgba(0,0,0,.45)}.ant-input-show-count-has-suffix{margin-right:2px}.ant-input-prefix{margin-right:4px}.ant-input-suffix{margin-left:4px}.ant-input-clear-icon,.anticon.ant-input-clear-icon{margin:0;color:rgba(0,0,0,.25);font-size:12px;vertical-align:-1px;cursor:pointer;transition:color .3s}.ant-input-clear-icon:hover,.anticon.ant-input-clear-icon:hover{color:rgba(0,0,0,.45)}.ant-input-clear-icon:active,.anticon.ant-input-clear-icon:active{color:rgba(0,0,0,.85)}.ant-input-clear-icon-hidden,.anticon.ant-input-clear-icon-hidden{visibility:hidden}.ant-input-clear-icon-has-suffix,.anticon.ant-input-clear-icon-has-suffix{margin:0 4px}.ant-input-affix-wrapper-textarea-with-clear-btn{padding:0!important;border:0!important}.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon{position:absolute;top:8px;right:8px;z-index:1}.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input,.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover{background:#fff;border-color:#ff4d4f}.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused,.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus{border-color:#ff7875;box-shadow:0 0 0 2px rgba(255,77,79,.2);border-right-width:1px;outline:0}.ant-input-status-error .ant-input-prefix{color:#ff4d4f}.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input,.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover{background:#fff;border-color:#faad14}.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused,.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus{border-color:#ffc53d;box-shadow:0 0 0 2px rgba(250,173,20,.2);border-right-width:1px;outline:0}.ant-input-status-warning .ant-input-prefix{color:#faad14}.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover{background:#fff;border-color:#ff4d4f}.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused,.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus{border-color:#ff7875;box-shadow:0 0 0 2px rgba(255,77,79,.2);border-right-width:1px;outline:0}.ant-input-affix-wrapper-status-error .ant-input-prefix{color:#ff4d4f}.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover{background:#fff;border-color:#faad14}.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused,.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus{border-color:#ffc53d;box-shadow:0 0 0 2px rgba(250,173,20,.2);border-right-width:1px;outline:0}.ant-input-affix-wrapper-status-warning .ant-input-prefix{color:#faad14}.ant-input-textarea-status-error.ant-input-textarea-has-feedback .ant-input,.ant-input-textarea-status-success.ant-input-textarea-has-feedback .ant-input,.ant-input-textarea-status-validating.ant-input-textarea-has-feedback .ant-input,.ant-input-textarea-status-warning.ant-input-textarea-has-feedback .ant-input{padding-right:24px}.ant-input-group-wrapper-status-error .ant-input-group-addon{color:#ff4d4f;border-color:#ff4d4f}.ant-input-group-wrapper-status-warning .ant-input-group-addon{color:#faad14;border-color:#faad14}.ant-input{box-sizing:border-box;margin:0;font-variant:tabular-nums;list-style:none;font-feature-settings:"tnum","tnum";position:relative;display:inline-block;width:100%;min-width:0;padding:4px 11px;color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s}.ant-input::-moz-placeholder{opacity:1}.ant-input:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-input:placeholder-shown{text-overflow:ellipsis}.ant-input:hover{border-color:#40a9ff;border-right-width:1px}.ant-input-rtl .ant-input:hover{border-right-width:0;border-left-width:1px!important}.ant-input-focused,.ant-input:focus{border-color:#40a9ff;box-shadow:0 0 0 2px rgba(24,144,255,.2);border-right-width:1px;outline:0}.ant-input-rtl .ant-input-focused,.ant-input-rtl .ant-input:focus{border-right-width:0;border-left-width:1px!important}.ant-input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;cursor:not-allowed;opacity:1}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;cursor:not-allowed;opacity:1}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-borderless,.ant-input-borderless-disabled,.ant-input-borderless-focused,.ant-input-borderless:focus,.ant-input-borderless:hover,.ant-input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-input-lg{padding:6.5px 11px;font-size:16px}.ant-input-sm{padding:0 7px}.ant-input-rtl{direction:rtl}.ant-input-group{box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;display:table;width:100%;border-collapse:separate;border-spacing:0}.ant-input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.ant-input-group>[class*=col-]{padding-right:8px}.ant-input-group>[class*=col-]:last-child{padding-right:0}.ant-input-group-addon,.ant-input-group-wrap,.ant-input-group>.ant-input{display:table-cell}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group-addon,.ant-input-group-wrap{width:1px;white-space:nowrap;vertical-align:middle}.ant-input-group-wrap>*{display:block!important}.ant-input-group .ant-input{float:left;width:100%;margin-bottom:0;text-align:inherit}.ant-input-group .ant-input:focus,.ant-input-group .ant-input:hover{z-index:1;border-right-width:1px}.ant-input-search-with-button .ant-input-group .ant-input:hover{z-index:0}.ant-input-group-addon{position:relative;padding:0 11px;color:rgba(0,0,0,.85);font-weight:400;font-size:14px;text-align:center;background-color:#fafafa;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s}.ant-input-group-addon .ant-select{margin:-5px -11px}.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid transparent;box-shadow:none}.ant-input-group-addon .ant-select-focused .ant-select-selector,.ant-input-group-addon .ant-select-open .ant-select-selector{color:#1890ff}.ant-input-group-addon .ant-cascader-picker{margin:-9px -12px;background-color:transparent}.ant-input-group-addon .ant-cascader-picker .ant-cascader-input{text-align:left;border:0;box-shadow:none}.ant-input-group-addon:first-child,.ant-input-group-addon:first-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:first-child,.ant-input-group>.ant-input:first-child .ant-select .ant-select-selector{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group-addon:last-child,.ant-input-group-addon:last-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:last-child,.ant-input-group>.ant-input:last-child .ant-select .ant-select-selector{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{padding:6.5px 11px;font-size:16px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{padding:0 7px}.ant-input-group-lg .ant-select-single .ant-select-selector{height:40px}.ant-input-group-sm .ant-select-single .ant-select-selector{height:24px}.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child){border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group.ant-input-group-compact{display:block}.ant-input-group.ant-input-group-compact:before{display:table;content:""}.ant-input-group.ant-input-group-compact:after{display:table;clear:both;content:""}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-group.ant-input-group-compact>*{display:inline-block;float:none;vertical-align:top;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact>.ant-picker-range{display:inline-flex}.ant-input-group.ant-input-group-compact>:not(:last-child){margin-right:-1px;border-right-width:1px}.ant-input-group.ant-input-group-compact .ant-input{float:none}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector{border-right-width:1px;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-focused,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-arrow,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:last-child{border-right-width:1px;border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-group-rtl .ant-input-group-addon:first-child,.ant-input-group>.ant-input-rtl:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl .ant-input-group-addon:first-child{border-right:1px solid #d9d9d9;border-left:0}.ant-input-group-rtl .ant-input-group-addon:last-child{border-right:0;border-left:1px solid #d9d9d9}.ant-input-group-rtl.ant-input-group-addon:last-child,.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-group-rtl.ant-input-group>.ant-input:last-child{border-radius:2px 0 0 2px}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:not(:last-child){margin-right:0;margin-left:-1px;border-left-width:1px}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:last-child{border-left-width:1px;border-radius:2px 0 0 2px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl+.ant-input-group-wrapper-rtl{margin-right:-1px;margin-left:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:0 2px 2px 0}.ant-input-group-wrapper{display:inline-block;width:100%;text-align:start;vertical-align:top}.ant-input-password-icon.anticon{color:rgba(0,0,0,.45);cursor:pointer;transition:all .3s}.ant-input-password-icon.anticon:hover{color:rgba(0,0,0,.85)}.ant-input[type=color]{height:32px}.ant-input[type=color].ant-input-lg{height:40px}.ant-input[type=color].ant-input-sm{height:24px;padding-top:3px;padding-bottom:3px}.ant-input-textarea-show-count>.ant-input{height:100%}.ant-input-textarea-show-count:after{float:right;color:rgba(0,0,0,.45);white-space:nowrap;content:attr(data-count);pointer-events:none}.ant-input-textarea-show-count.ant-input-textarea-in-form-item:after{margin-bottom:-22px}.ant-input-textarea-suffix{position:absolute;top:0;right:11px;bottom:0;z-index:1;display:inline-flex;align-items:center;margin:auto}.ant-input-search .ant-input:focus,.ant-input-search .ant-input:hover{border-color:#40a9ff}.ant-input-search .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:#40a9ff}.ant-input-search .ant-input-affix-wrapper{border-radius:0}.ant-input-search .ant-input-lg{line-height:1.5713}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child{left:-1px;padding:0;border:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button{padding-top:0;padding-bottom:0;border-radius:0 2px 2px 0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary){color:rgba(0,0,0,.45)}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading:before{top:0;right:0;bottom:0;left:0}.ant-input-search-button{height:32px}.ant-input-search-button:focus,.ant-input-search-button:hover{z-index:1}.ant-input-search-large .ant-input-search-button{height:40px}.ant-input-search-small .ant-input-search-button{height:24px}.ant-input-group-rtl,.ant-input-group-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl>input.ant-input{border:none;outline:none}.ant-input-affix-wrapper-rtl .ant-input-prefix{margin:0 0 0 4px}.ant-input-affix-wrapper-rtl .ant-input-suffix{margin:0 4px 0 0}.ant-input-textarea-rtl{direction:rtl}.ant-input-textarea-rtl.ant-input-textarea-show-count:after{text-align:left}.ant-input-affix-wrapper-rtl .ant-input-clear-icon-has-suffix{margin-right:0;margin-left:4px}.ant-input-affix-wrapper-rtl .ant-input-clear-icon{right:auto;left:8px}.ant-input-search-rtl{direction:rtl}.ant-input-search-rtl .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search-rtl .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-right-color:#40a9ff;border-left-color:#d9d9d9}.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper-focused,.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper:hover{border-right-color:#40a9ff}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon{right:-1px;left:auto}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon .ant-input-search-button{border-radius:2px 0 0 2px}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-input{height:32px}.ant-input-lg{height:40px}.ant-input-sm{height:24px}.ant-input-affix-wrapper>input.ant-input{height:auto}} -/*# sourceMappingURL=3.7f9fe742.chunk.css.map */ \ No newline at end of file diff --git a/build/static/css/3.7f9fe742.chunk.css.map b/build/static/css/3.7f9fe742.chunk.css.map deleted file mode 100644 index 4021c9c..0000000 --- a/build/static/css/3.7f9fe742.chunk.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["default.css","index.css"],"names":[],"mappings":"AAIA,gLAME,YACF,CAEA,UAEE,UAAW,CACX,WACF,CACA,mCAEE,YACF,CACA,iBAGE,qBACF,CACA,KACE,sBAAuB,CACvB,gBAAiB,CACjB,6BAA8B,CAC9B,yBAA0B,CAC1B,4BAA6B,CAC7B,yCACF,CACA,cACE,kBACF,CACA,KACE,QAAS,CACT,qBAA0B,CAC1B,cAAe,CACf,sLAAkM,CAClM,yBAA0B,CAC1B,kBAAmB,CACnB,qBAAsB,CACtB,mCACF,CACA,sBACE,sBACF,CACA,GACE,sBAAuB,CACvB,QAAS,CACT,gBACF,CACA,kBAME,YAAa,CACb,kBAAoB,CACpB,qBAA0B,CAC1B,eACF,CACA,EACE,YAAa,CACb,iBACF,CACA,sCAEE,yBAA0B,CAC1B,wCAAyC,CACjC,gCAAiC,CACzC,eAAgB,CAChB,WACF,CACA,QACE,iBAAkB,CAClB,iBAAkB,CAClB,mBACF,CACA,kEAIE,uBACF,CACA,SAGE,YAAa,CACb,iBACF,CACA,wBAIE,eACF,CACA,GACE,eACF,CACA,GACE,kBAAoB,CACpB,aACF,CACA,WACE,cACF,CACA,IACE,iBACF,CACA,SAEE,kBACF,CACA,MACE,aACF,CACA,QAEE,iBAAkB,CAClB,aAAc,CACd,aAAc,CACd,uBACF,CACA,IACE,aACF,CACA,IACE,SACF,CACA,EACE,aAAc,CACd,oBAAqB,CACrB,4BAA6B,CAC7B,YAAa,CACb,cAAe,CACf,oBAAsB,CACtB,oCACF,CACA,QACE,aACF,CACA,SACE,aACF,CAMA,yBACE,oBAAqB,CACrB,SACF,CACA,YACE,qBAA0B,CAC1B,kBACF,CACA,kBAIE,aAAc,CACd,+EACF,CACA,IACE,YAAa,CACb,iBAAkB,CAClB,aACF,CACA,OACE,cACF,CACA,IACE,qBAAsB,CACtB,iBACF,CACA,kFASE,yBACF,CACA,MACE,wBACF,CACA,QACE,iBAAmB,CACnB,mBAAqB,CACrB,qBAA0B,CAC1B,eAAgB,CAChB,mBACF,CACA,sCAKE,QAAS,CACT,aAAc,CACd,iBAAkB,CAClB,mBAAoB,CACpB,mBACF,CACA,aAEE,gBACF,CACA,cAEE,mBACF,CACA,qDAIE,yBACF,CACA,wHAIE,SAAU,CACV,iBACF,CACA,uCAEE,qBAAsB,CACtB,SACF,CACA,+EAIE,0BACF,CACA,SACE,aAAc,CACd,eACF,CACA,SACE,WAAY,CACZ,QAAS,CACT,SAAU,CACV,QACF,CACA,OACE,aAAc,CACd,UAAW,CACX,cAAe,CACf,kBAAoB,CACpB,SAAU,CACV,aAAc,CACd,eAAgB,CAChB,mBAAoB,CACpB,kBACF,CACA,SACE,uBACF,CACA,kFAEE,WACF,CACA,cACE,mBAAoB,CACpB,uBACF,CACA,qFAEE,uBACF,CACA,6BACE,YAAa,CACb,yBACF,CACA,OACE,oBACF,CACA,QACE,iBACF,CACA,SACE,YACF,CACA,SACE,sBACF,CACA,KACE,YAAc,CACd,wBACF,CACA,iBACE,UAAW,CACX,kBACF,CACA,YACE,UAAW,CACX,kBACF,CAKA,iCAHE,aAAc,CACd,UAMF,CAJA,gBAEE,UAEF,CACA,SACE,oBAAqB,CACrB,aAAc,CACd,iBAAkB,CAClB,aAAc,CACd,iBAAkB,CAClB,mBAAoB,CACpB,sBAAwB,CACxB,iCAAkC,CAClC,kCAAmC,CACnC,iCACF,CACA,WACE,aACF,CACA,aACE,oBACF,CACA,gBACE,YACF,CACA,uBACE,aACF,CACA,kBACE,aAAc,CACd,gBACF,CACA,mBACE,cACF,CAMA,mCACE,oBAAqB,CACrB,kDAAmD,CAC3C,0CACV,CAUA,iDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,8EAEE,gCAAiC,CACzB,wBAAyB,CACjC,oCAAqC,CAC7B,4BACV,CACA,sCACE,iCAAkC,CAC1B,yBAA0B,CAClC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,iCAEE,SAGF,CACA,iDAHE,wCAAyC,CACjC,gCAKV,CACA,6BACE,GACE,SACF,CACA,GACE,SACF,CACF,CACA,qBACE,GACE,SACF,CACA,GACE,SACF,CACF,CACA,8BACE,GACE,SACF,CACA,GACE,SACF,CACF,CACA,sBACE,GACE,SACF,CACA,GACE,SACF,CACF,CAUA,0DACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,0FAEE,kCAAmC,CAC3B,0BAA2B,CACnC,oCAAqC,CAC7B,4BACV,CACA,4CACE,mCAAoC,CAC5B,2BAA4B,CACpC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,uCAEE,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,mBACE,8DAAsE,CAC9D,sDACV,CAUA,gEACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,kGAEE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BACV,CACA,gDACE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,2CAEE,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,qBACE,8DAAsE,CAC9D,sDACV,CAUA,gEACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,kGAEE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BACV,CACA,gDACE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,2CAEE,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,qBACE,8DAAsE,CAC9D,sDACV,CAUA,mEACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,sGAEE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BACV,CACA,kDACE,sCAAuC,CAC/B,8BAA+B,CACvC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,6CAEE,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,sBACE,8DAAsE,CAC9D,sDACV,CACA,iCACE,GACE,0BAA2B,CAC3B,oBAAqB,CACrB,SACF,CACA,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACF,CACA,yBACE,GACE,0BAA2B,CAC3B,oBAAqB,CACrB,SACF,CACA,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACF,CACA,kCACE,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACA,GACE,0BAA2B,CAC3B,oBAAqB,CACrB,SACF,CACF,CACA,0BACE,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACA,GACE,0BAA2B,CAC3B,oBAAqB,CACrB,SACF,CACF,CACA,iCACE,GACE,2BAA4B,CAC5B,oBAAqB,CACrB,SACF,CACA,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACF,CACA,yBACE,GACE,2BAA4B,CAC5B,oBAAqB,CACrB,SACF,CACA,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACF,CACA,kCACE,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACA,GACE,2BAA4B,CAC5B,oBAAqB,CACrB,SACF,CACF,CACA,0BACE,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACA,GACE,2BAA4B,CAC5B,oBAAqB,CACrB,SACF,CACF,CACA,kCACE,GACE,0BAA2B,CAC3B,oBAAqB,CACrB,SACF,CACA,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACF,CACA,0BACE,GACE,0BAA2B,CAC3B,oBAAqB,CACrB,SACF,CACA,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACF,CACA,mCACE,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACA,GACE,0BAA2B,CAC3B,oBAAqB,CACrB,SACF,CACF,CACA,2BACE,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACA,GACE,0BAA2B,CAC3B,oBAAqB,CACrB,SACF,CACF,CACA,+BACE,GACE,2BAA4B,CAC5B,oBAAqB,CACrB,SACF,CACA,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACF,CACA,uBACE,GACE,2BAA4B,CAC5B,oBAAqB,CACrB,SACF,CACA,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACF,CACA,gCACE,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACA,GACE,2BAA4B,CAC5B,oBAAqB,CACrB,SACF,CACF,CACA,wBACE,GACE,uBAAyB,CACzB,oBAAqB,CACrB,SACF,CACA,GACE,2BAA4B,CAC5B,oBAAqB,CACrB,SACF,CACF,CACA,iCACE,GACE,uBACF,CACF,CACA,yBACE,GACE,uBACF,CACF,CACA,yEAEE,iBACF,CACA,KACE,gCAAiC,CACjC,cACF,CACA,8EAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,aAAc,CACd,qBAAsB,CAEtB,0BAAiD,CAAjD,gDAAiD,CACjD,UAAY,CACZ,sGAAqH,CAC7G,8FAA6G,CACrH,oCAAqC,CAC7B,4BAA6B,CACrC,UAAW,CACX,mBACF,CACA,8BACE,GACE,wBAAyB,CACzB,4BAAmD,CAAnD,kDACF,CACF,CACA,sBACE,GACE,wBAAyB,CACzB,4BAAmD,CAAnD,kDACF,CACF,CACA,8BACE,GACE,SACF,CACF,CACA,sBACE,GACE,SACF,CACF,CAUA,6DACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,8FAEE,mCAAoC,CAC5B,2BAA4B,CACpC,oCAAqC,CAC7B,4BACV,CACA,8CACE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,yCAEE,SAAU,CACV,2DAAiE,CACzD,mDACV,CACA,oBACE,iEAAyE,CACjE,yDACV,CAUA,mEACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,sGAEE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BACV,CACA,kDACE,sCAAuC,CAC/B,8BAA+B,CACvC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,6CAEE,SAAU,CACV,2DAAiE,CACzD,mDACV,CACA,sBACE,iEAAyE,CACjE,yDACV,CAUA,mEACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,sGAEE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BACV,CACA,kDACE,sCAAuC,CAC/B,8BAA+B,CACvC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,6CAEE,SAAU,CACV,2DAAiE,CACzD,mDACV,CACA,sBACE,iEAAyE,CACjE,yDACV,CAUA,sEACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,0GAEE,sCAAuC,CAC/B,8BAA+B,CACvC,oCAAqC,CAC7B,4BACV,CACA,oDACE,uCAAwC,CAChC,+BAAgC,CACxC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,+CAEE,SAAU,CACV,2DAAiE,CACzD,mDACV,CACA,uBACE,iEAAyE,CACjE,yDACV,CACA,gCACE,GACE,oBAAsB,CACtB,oBAAuB,CACvB,SACF,CACA,GACE,mBAAoB,CACpB,oBAAuB,CACvB,SACF,CACF,CACA,wBACE,GACE,oBAAsB,CACtB,oBAAuB,CACvB,SACF,CACA,GACE,mBAAoB,CACpB,oBAAuB,CACvB,SACF,CACF,CACA,iCACE,GACE,mBAAoB,CACpB,oBAAuB,CACvB,SACF,CACA,GACE,oBAAsB,CACtB,oBAAuB,CACvB,SACF,CACF,CACA,yBACE,GACE,mBAAoB,CACpB,oBAAuB,CACvB,SACF,CACA,GACE,oBAAsB,CACtB,oBAAuB,CACvB,SACF,CACF,CACA,kCACE,GACE,oBAAsB,CACtB,0BAA2B,CAC3B,SACF,CACA,GACE,mBAAoB,CACpB,0BAA2B,CAC3B,SACF,CACF,CACA,0BACE,GACE,oBAAsB,CACtB,0BAA2B,CAC3B,SACF,CACA,GACE,mBAAoB,CACpB,0BAA2B,CAC3B,SACF,CACF,CACA,mCACE,GACE,mBAAoB,CACpB,0BAA2B,CAC3B,SACF,CACA,GACE,oBAAsB,CACtB,0BAA2B,CAC3B,SACF,CACF,CACA,2BACE,GACE,mBAAoB,CACpB,0BAA2B,CAC3B,SACF,CACA,GACE,oBAAsB,CACtB,0BAA2B,CAC3B,SACF,CACF,CACA,kCACE,GACE,oBAAsB,CACtB,oBAAuB,CACvB,SACF,CACA,GACE,mBAAoB,CACpB,oBAAuB,CACvB,SACF,CACF,CACA,0BACE,GACE,oBAAsB,CACtB,oBAAuB,CACvB,SACF,CACA,GACE,mBAAoB,CACpB,oBAAuB,CACvB,SACF,CACF,CACA,mCACE,GACE,mBAAoB,CACpB,oBAAuB,CACvB,SACF,CACA,GACE,oBAAsB,CACtB,oBAAuB,CACvB,SACF,CACF,CACA,2BACE,GACE,mBAAoB,CACpB,oBAAuB,CACvB,SACF,CACA,GACE,oBAAsB,CACtB,oBAAuB,CACvB,SACF,CACF,CACA,mCACE,GACE,oBAAsB,CACtB,uBAAyB,CACzB,SACF,CACA,GACE,mBAAoB,CACpB,uBAAyB,CACzB,SACF,CACF,CACA,2BACE,GACE,oBAAsB,CACtB,uBAAyB,CACzB,SACF,CACA,GACE,mBAAoB,CACpB,uBAAyB,CACzB,SACF,CACF,CACA,oCACE,GACE,mBAAoB,CACpB,uBAAyB,CACzB,SACF,CACA,GACE,oBAAsB,CACtB,uBAAyB,CACzB,SACF,CACF,CACA,4BACE,GACE,mBAAoB,CACpB,uBAAyB,CACzB,SACF,CACA,GACE,oBAAsB,CACtB,uBAAyB,CACzB,SACF,CACF,CAUA,iDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,8EAEE,gCAAiC,CACzB,wBAAyB,CACjC,oCAAqC,CAC7B,4BACV,CACA,sCACE,iCAAkC,CAC1B,yBAA0B,CAClC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,iCAEE,kBAAmB,CACnB,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,iDAEE,cACF,CACA,gBACE,+DAAuE,CAC/D,uDACV,CAUA,6DACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,8FAEE,mCAAoC,CAC5B,2BAA4B,CACpC,oCAAqC,CAC7B,4BACV,CACA,8CACE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,yCAEE,kBAAmB,CACnB,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,yDAEE,cACF,CACA,oBACE,+DAAuE,CAC/D,uDACV,CAUA,4EACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,kHAEE,mCAAoC,CAC5B,2BAA4B,CACpC,oCAAqC,CAC7B,4BACV,CACA,wDACE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,mDAEE,kBAAmB,CACnB,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,mEAEE,cACF,CACA,yBACE,+DAAuE,CAC/D,uDACV,CAUA,0DACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,0FAEE,kCAAmC,CAC3B,0BAA2B,CACnC,oCAAqC,CAC7B,4BACV,CACA,4CACE,mCAAoC,CAC5B,2BAA4B,CACpC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,uCAEE,kBAAmB,CACnB,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,uDAEE,cACF,CACA,mBACE,+DAAuE,CAC/D,uDACV,CAUA,gEACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,kGAEE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BACV,CACA,gDACE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,2CAEE,kBAAmB,CACnB,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,2DAEE,cACF,CACA,qBACE,+DAAuE,CAC/D,uDACV,CAUA,gEACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,kGAEE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BACV,CACA,gDACE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,2CAEE,kBAAmB,CACnB,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,2DAEE,cACF,CACA,qBACE,+DAAuE,CAC/D,uDACV,CAUA,mEACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,sGAEE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BACV,CACA,kDACE,sCAAuC,CAC/B,8BAA+B,CACvC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,6CAEE,kBAAmB,CACnB,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,6DAEE,cACF,CACA,sBACE,+DAAuE,CAC/D,uDACV,CACA,6BACE,GACE,mBAAqB,CACrB,SACF,CACA,GACE,kBAAmB,CACnB,SACF,CACF,CACA,qBACE,GACE,mBAAqB,CACrB,SACF,CACA,GACE,kBAAmB,CACnB,SACF,CACF,CACA,8BACE,GACE,kBACF,CACA,GACE,mBAAqB,CACrB,SACF,CACF,CACA,sBACE,GACE,kBACF,CACA,GACE,mBAAqB,CACrB,SACF,CACF,CACA,gCACE,GACE,mBAAqB,CACrB,SACF,CACA,GACE,kBAAmB,CACnB,SACF,CACF,CACA,wBACE,GACE,mBAAqB,CACrB,SACF,CACA,GACE,kBAAmB,CACnB,SACF,CACF,CACA,iCACE,GACE,kBACF,CACA,GACE,mBAAqB,CACrB,SACF,CACF,CACA,yBACE,GACE,kBACF,CACA,GACE,mBAAqB,CACrB,SACF,CACF,CACA,+BACE,GACE,mBAAqB,CACrB,sBAAwB,CACxB,SACF,CACA,GACE,kBAAmB,CACnB,sBACF,CACF,CACA,uBACE,GACE,mBAAqB,CACrB,sBAAwB,CACxB,SACF,CACA,GACE,kBAAmB,CACnB,sBACF,CACF,CACA,gCACE,GACE,kBAAmB,CACnB,sBACF,CACA,GACE,mBAAqB,CACrB,sBAAwB,CACxB,SACF,CACF,CACA,wBACE,GACE,kBAAmB,CACnB,sBACF,CACA,GACE,mBAAqB,CACrB,sBAAwB,CACxB,SACF,CACF,CACA,iCACE,GACE,mBAAqB,CACrB,sBAAwB,CACxB,SACF,CACA,GACE,kBAAmB,CACnB,sBACF,CACF,CACA,yBACE,GACE,mBAAqB,CACrB,sBAAwB,CACxB,SACF,CACA,GACE,kBAAmB,CACnB,sBACF,CACF,CACA,kCACE,GACE,kBAAmB,CACnB,sBACF,CACA,GACE,mBAAqB,CACrB,sBAAwB,CACxB,SACF,CACF,CACA,0BACE,GACE,kBAAmB,CACnB,sBACF,CACA,GACE,mBAAqB,CACrB,sBAAwB,CACxB,SACF,CACF,CACA,kCACE,GACE,mBAAqB,CACrB,yBAA0B,CAC1B,SACF,CACA,GACE,kBAAmB,CACnB,yBACF,CACF,CACA,0BACE,GACE,mBAAqB,CACrB,yBAA0B,CAC1B,SACF,CACA,GACE,kBAAmB,CACnB,yBACF,CACF,CACA,mCACE,GACE,kBAAmB,CACnB,yBACF,CACA,GACE,mBAAqB,CACrB,yBAA0B,CAC1B,SACF,CACF,CACA,2BACE,GACE,kBAAmB,CACnB,yBACF,CACA,GACE,mBAAqB,CACrB,yBAA0B,CAC1B,SACF,CACF,CACA,iCACE,GACE,mBAAqB,CACrB,yBAA0B,CAC1B,SACF,CACA,GACE,kBAAmB,CACnB,yBACF,CACF,CACA,yBACE,GACE,mBAAqB,CACrB,yBAA0B,CAC1B,SACF,CACA,GACE,kBAAmB,CACnB,yBACF,CACF,CACA,kCACE,GACE,kBAAmB,CACnB,yBACF,CACA,GACE,mBAAqB,CACrB,yBAA0B,CAC1B,SACF,CACF,CACA,0BACE,GACE,kBAAmB,CACnB,yBACF,CACA,GACE,mBAAqB,CACrB,yBAA0B,CAC1B,SACF,CACF,CACA,4BACE,eACF,CAIA,wDAFE,yGAKF,CAHA,qBACE,eAEF,CCvvDA,aACE,qBAAsB,CACtB,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,mCAA6B,CAC7B,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,YAAa,CACb,eAAmB,CACnB,kBAAmB,CACnB,eAAgB,CAChB,WAAY,CACZ,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,qBACE,iBACF,CACA,mBACE,iBAAkB,CAClB,8BAAqC,CACrC,UACF,CACA,oBACE,YACF,CACA,0FAGE,2BACF,CACA,gGAGE,yBACF,CACA,mGAGE,wBACF,CACA,6FAGE,0BACF,CACA,mBACE,qBAAsB,CACtB,2BAA4B,CAC5B,iBAAkB,CAClB,qGAAoH,CACpH,oCACF,CACA,sEAIE,mBACE,qGACF,CACF,CACA,mBACE,eAAgB,CAChB,eAAgB,CAChB,QAAS,CACT,oBAAqB,CACrB,qBAA0B,CAC1B,eAAgB,CAChB,+BACF,CACA,2BACE,iBAAkB,CAClB,qBACF,CACA,qBACE,iBAAkB,CAClB,kBAAmB,CACnB,qBAA0B,CAC1B,cACF,CACA,8BACE,iBAAkB,CAClB,YAAa,CACb,aAAc,CACd,cACF,CACA,2BACE,iBACF,CACA,qBACE,iBAAkB,CAClB,gBACF,CACA,4BACE,eACF,CACA,mBACE,iBAAkB,CAClB,aAAc,CACd,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,sBAAuB,CACvB,mBACF,CACA,2BACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,aAAc,CACd,kBAAmB,CACnB,mBAAoB,CACpB,WAAY,CACZ,qBAAsB,CACtB,UAAW,CACX,mBAAoB,CACpB,qBAAsB,CACtB,mBACF,CACA,kCACE,iBAAkB,CAClB,iBAAkB,CAClB,kBAAmB,CACnB,kBAAmB,CACnB,mBAAoB,CACpB,eAAgB,CAChB,2BAA4B,CAC5B,+BAAgC,CAChC,UAAW,CACX,qXAAsX,CAC9W,6WACV,CACA,mJAGE,QAAS,CACT,0BACF,CACA,2KAGE,sCAA2C,CAC3C,yCACF,CACA,8CACE,QAAS,CACT,2CACF,CACA,kDACE,SACF,CACA,mDACE,UACF,CACA,yJAGE,MAAO,CACP,2BACF,CACA,iLAGE,sCAA2C,CAC3C,yCACF,CACA,gDACE,OAAQ,CACR,4CACF,CACA,mDACE,QACF,CACA,sDACE,WACF,CACA,4JAGE,KAAM,CACN,2BACF,CACA,oLAGE,sCAA2C,CAC3C,0CACF,CACA,iDACE,QAAS,CACT,4CACF,CACA,qDACE,SACF,CACA,sDACE,UACF,CACA,sJAGE,OAAQ,CACR,0BACF,CACA,8KAGE,sCAA2C,CAC3C,0CACF,CACA,+CACE,OAAQ,CACR,2CACF,CACA,kDACE,QACF,CACA,qDACE,WACF,CAUA,0KACE,wBACF,CAIA,gFACE,wBACF,CAIA,wFACE,wBACF,CAIA,sFACE,wBACF,CAIA,sFACE,wBACF,CAIA,kFACE,wBACF,CAIA,kFACE,wBACF,CAIA,kFACE,wBACF,CAIA,oFACE,wBACF,CAIA,kFACE,wBACF,CAIA,0FACE,wBACF,CAIA,sFACE,wBACF,CACA,iBACE,aAAc,CACd,gBACF,CACA,4CACE,kBAAmB,CACnB,iBACF,CACA,sCACE,eACF,CACA,6CACE,gBAAiB,CACjB,aACF,CAlUA,SACE,kBAAmB,CACnB,iBAAkB,CAClB,oBAAqB,CACrB,eAAgB,CAChB,kBAAmB,CACnB,iBAAkB,CAClB,qBAAsB,CAEtB,mCAAwC,CACxC,cAAe,CACf,iDAAyD,CACzD,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBAAiB,CACzB,yBAA0B,CAC1B,WAAY,CACZ,gBAAiB,CACjB,cAAe,CACf,iBAAkB,CAClB,qBAA0B,CAC1B,wBAAqB,CACrB,eACF,CACA,kBACE,aACF,CACA,wCAGE,SACF,CACA,+BACE,oBACF,CACA,gCACE,SAAU,CACV,eACF,CACA,mBACE,kBACF,CACA,qBACE,mBACF,CACA,YACE,WAAY,CACZ,kBAAmB,CACnB,cAAe,CACf,iBACF,CACA,YACE,WAAY,CACZ,aAAgB,CAChB,cAAe,CACf,iBACF,CACA,sBACE,kBACF,CACA,4BACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,8BAEE,aAAc,CACd,oBAAqB,CACrB,eACF,CACA,wDAEE,kBACF,CACA,oEAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gBACE,aAAc,CACd,oBAAqB,CACrB,eACF,CACA,6BACE,kBACF,CACA,mCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,+FAIE,qBAA0B,CAC1B,oBAAqB,CACrB,kBAAmB,CACnB,gBAAiB,CACjB,eACF,CACA,mJAIE,kBACF,CACA,2KAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,8CAGE,oBAAqB,CACrB,eACF,CACA,cACE,oBACF,CACA,iBACE,UAAW,CACX,oBAAqB,CACrB,kBAAmB,CACnB,oCAAyC,CACzC,mCACF,CACA,8BACE,kBACF,CACA,oCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,8CAEE,UAAW,CACX,oBAAqB,CACrB,kBACF,CACA,wEAEE,kBACF,CACA,oFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,wBACE,UAAW,CACX,oBAAqB,CACrB,kBACF,CACA,qCACE,kBACF,CACA,2CACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,+HAIE,qBAA0B,CAC1B,oBAAqB,CACrB,kBAAmB,CACnB,gBAAiB,CACjB,eACF,CACA,mLAIE,kBACF,CACA,2MAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,mEACE,0BAA2B,CAC3B,yBACF,CACA,4EACE,oBACF,CACA,6DACE,0BACF,CACA,uEACE,0BACF,CACA,8GAEE,yBACF,CACA,kIAEE,yBACF,CACA,eACE,qBAA0B,CAC1B,oBAAqB,CACrB,sBACF,CACA,4BACE,kBACF,CACA,kCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,0CAEE,aAAc,CACd,oBAAqB,CACrB,sBACF,CACA,oEAEE,kBACF,CACA,gFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,sBACE,aAAc,CACd,oBAAqB,CACrB,sBACF,CACA,mCACE,kBACF,CACA,yCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,uHAIE,qBAA0B,CAC1B,oBAAqB,CACrB,kBAAmB,CACnB,gBAAiB,CACjB,eACF,CACA,2KAIE,kBACF,CACA,mMAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gBACE,qBAA0B,CAC1B,oBAAqB,CACrB,eAAgB,CAChB,mBACF,CACA,6BACE,kBACF,CACA,mCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,4CAEE,aAAc,CACd,oBAAqB,CACrB,eACF,CACA,sEAEE,kBACF,CACA,kFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,uBACE,aAAc,CACd,oBAAqB,CACrB,eACF,CACA,oCACE,kBACF,CACA,0CACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,2HAIE,qBAA0B,CAC1B,oBAAqB,CACrB,kBAAmB,CACnB,gBAAiB,CACjB,eACF,CACA,+KAIE,kBACF,CACA,uMAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gBACE,UAAW,CACX,oBAAqB,CACrB,kBAAmB,CACnB,oCAAyC,CACzC,mCACF,CACA,6BACE,kBACF,CACA,mCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,4CAEE,UAAW,CACX,oBAAqB,CACrB,kBACF,CACA,sEAEE,kBACF,CACA,kFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,uBACE,UAAW,CACX,oBAAqB,CACrB,kBACF,CACA,oCACE,kBACF,CACA,0CACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,2HAIE,qBAA0B,CAC1B,oBAAqB,CACrB,kBAAmB,CACnB,gBAAiB,CACjB,eACF,CACA,+KAIE,kBACF,CACA,uMAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,cACE,aAAc,CACd,wBAAyB,CACzB,sBAAuB,CACvB,eACF,CACA,2BACE,kBACF,CACA,iCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,wCAEE,aAAc,CACd,oBAAqB,CACrB,sBACF,CACA,kEAEE,kBACF,CACA,8EAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,qBACE,aAAc,CACd,oBAAqB,CACrB,sBACF,CACA,kCACE,kBACF,CACA,wCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,mHAKE,oBAAqB,CACrB,kBAGF,CAmBA,oBACE,sBACF,CACA,6DAGE,wBACF,CACA,mHAIE,qBAA0B,CAC1B,wBAAyB,CACzB,sBAAuB,CACvB,gBAAiB,CACjB,eACF,CACA,uKAIE,kBACF,CACA,+LAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,cACE,qBAA0B,CAC1B,wBAAyB,CACzB,sBAAuB,CACvB,eACF,CACA,2BACE,kBACF,CACA,iCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,wCAEE,aAAc,CACd,oBAAqB,CACrB,sBACF,CACA,kEAEE,kBACF,CACA,8EAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,qBACE,aAAc,CACd,oBAAqB,CACrB,sBACF,CACA,kCACE,kBACF,CACA,wCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,mHAKE,oBAAqB,CACrB,kBAGF,CAmBA,wCAEE,qBAA0B,CAC1B,2BAAgC,CAChC,wBACF,CACA,qBACE,qBAA0B,CAC1B,2BAAgC,CAChC,wBACF,CACA,mHAIE,qBAA0B,CAC1B,wBAAyB,CACzB,sBAAuB,CACvB,gBAAiB,CACjB,eACF,CACA,uKAIE,kBACF,CACA,+LAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,mBACE,aAAc,CACd,oBAAqB,CACrB,eACF,CACA,gCACE,kBACF,CACA,sCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,kDAEE,aAAc,CACd,oBAAqB,CACrB,eACF,CACA,4EAEE,kBACF,CACA,wFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,0BACE,aAAc,CACd,oBAAqB,CACrB,eACF,CACA,uCACE,kBACF,CACA,6CACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,uIAIE,qBAA0B,CAC1B,oBAAqB,CACrB,kBAAmB,CACnB,gBAAiB,CACjB,eACF,CACA,2LAIE,kBACF,CACA,mNAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,mCACE,UAAW,CACX,oBAAqB,CACrB,kBAAmB,CACnB,oCAAyC,CACzC,mCACF,CACA,gDACE,kBACF,CACA,sDACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,kFAEE,UAAW,CACX,oBAAqB,CACrB,kBACF,CACA,4GAEE,kBACF,CACA,wHAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,0CACE,UAAW,CACX,oBAAqB,CACrB,kBACF,CACA,uDACE,kBACF,CACA,6DACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,uMAIE,qBAA0B,CAC1B,oBAAqB,CACrB,kBAAmB,CACnB,gBAAiB,CACjB,eACF,CACA,2PAIE,kBACF,CACA,mRAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gCACE,aAAc,CACd,wBAAyB,CACzB,sBAAuB,CACvB,eACF,CACA,6CACE,kBACF,CACA,mDACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,4EAEE,aAAc,CACd,oBAEF,CAeA,uCACE,aAAc,CACd,oBAEF,CAaA,2LAKE,oBAAqB,CACrB,kBAGF,CAmBA,4EAEE,aAAc,CACd,wBAAyB,CACzB,sBACF,CACA,sGAEE,kBACF,CACA,kHAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,uCACE,aAAc,CACd,wBAAyB,CACzB,sBACF,CACA,oDACE,kBACF,CACA,0DACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,2LAIE,qBAA0B,CAC1B,wBAAyB,CACzB,sBAAuB,CACvB,gBAAiB,CACjB,eACF,CACA,+OAIE,kBACF,CACA,uQAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gCACE,aAAc,CACd,wBAAyB,CACzB,sBAAuB,CACvB,eACF,CACA,6CACE,kBACF,CACA,mDACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,4EAEE,aAAc,CACd,oBAAqB,CACrB,sBACF,CAeA,uCACE,aAAc,CACd,oBAAqB,CACrB,sBACF,CAaA,2LAKE,oBAAqB,CACrB,kBAGF,CAmBA,4EAEE,aAAc,CACd,wBAAyB,CACzB,2BACF,CACA,sGAEE,kBACF,CACA,kHAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,uCACE,aAAc,CACd,wBAAyB,CACzB,2BACF,CACA,oDACE,kBACF,CACA,0DACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,2LAIE,qBAA0B,CAC1B,wBAAyB,CACzB,sBAAuB,CACvB,gBAAiB,CACjB,eACF,CACA,+OAIE,kBACF,CACA,uQAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,mBACE,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,cAAe,CACf,iBAAkB,CAClB,mBACF,CACA,qBACE,cACF,CACA,8BACE,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,cAAe,CACf,iBACF,CACA,gCACE,cACF,CACA,8BACE,UAAW,CACX,WAAY,CACZ,SAAc,CACd,cAAe,CACf,iBACF,CACA,gCACE,cACF,CACA,4BACE,YAAa,CACb,sBACF,CACA,oBACE,mBACF,CACA,6BACE,cACF,CACA,eACE,WAAY,CACZ,gBAAiB,CACjB,cAAe,CACf,kBACF,CACA,0BACE,WAAY,CACZ,kBAAmB,CACnB,cAAe,CACf,kBACF,CACA,0BACE,WAAY,CACZ,cAAiB,CACjB,cAAe,CACf,kBACF,CACA,iCACE,UACF,CACA,gBACE,cAAe,CACf,eAAgB,CAChB,cAAe,CACf,iBAAkB,CAClB,iBACF,CACA,2BACE,cAAe,CACf,iBACF,CACA,2BACE,cAAe,CACf,iBACF,CACA,gBACE,iBAAkB,CAClB,QAAS,CACT,UAAW,CACX,WAAY,CACZ,SAAU,CACV,SAAU,CACV,YAAa,CACb,eAAgB,CAChB,qBAAsB,CACtB,WAAa,CACb,sBAAwB,CACxB,UAAW,CACX,mBACF,CACA,kBACE,yDACF,CACA,uEAEE,6BACF,CACA,yBACE,iBAAkB,CAClB,cACF,CACA,gCACE,aACF,CACA,+BACE,8FACF,CACA,wCACE,iBAAkB,CAClB,sBAAuB,CACf,cACV,CACA,4CACE,kDAAmD,CAC3C,0CACV,CAIA,eAEE,mBACF,CACA,oEAHE,iBAMF,CACA,qMAME,SACF,CACA,yEAEE,SACF,CACA,kCACE,cACF,CACA,kMAOE,gBACF,CACA,+EACE,6BACF,CACA,wBACE,eACF,CACA,6EAEE,aACF,CAIA,2EACE,iBACF,CACA,+GAEE,0BAA2B,CAC3B,6BACF,CACA,+GAEE,2BAA4B,CAC5B,8BACF,CAIA,iFACE,iBACF,CACA,qHAEE,0BAA2B,CAC3B,6BACF,CACA,qHAEE,2BAA4B,CAC5B,8BACF,CACA,8BACE,UACF,CACA,0EACE,eACF,CACA,+EACE,iBAAkB,CAClB,yBAA0B,CAC1B,4BACF,CACA,gFACE,gBAAiB,CACjB,wBAAyB,CACzB,2BACF,CACA,slBAcE,iBAAkB,CAClB,gBACF,CACA,iCACE,aACF,CACA,mJAEE,yBACF,CACA,mJAEE,yBACF,CACA,yJAEE,yBACF,CACA,yJAEE,yBACF,CACA,yCAEE,iBACF,CACA,8CAEE,eACF,CACA,kCACE,UAAW,CACX,iBACF,CACA,2JAIE,sBACF,CACA,gFAEE,aAAc,CACd,oBACF,CACA,yCACE,aAAc,CACd,oBACF,CACA,4CACE,qBAA0B,CAC1B,sBAAuB,CACvB,oBACF,CACA,0CACE,aAAc,CACd,oBAAqB,CACrB,gBACF,CACA,uDACE,kBACF,CACA,6DACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gGAEE,aAAc,CACd,oBACF,CACA,0HAEE,kBACF,CACA,sIAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,iDACE,aAAc,CACd,oBACF,CACA,8DACE,kBACF,CACA,oEACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,mOAIE,qBAA0B,CAC1B,oBAAqB,CACrB,kBAAmB,CACnB,gBAAiB,CACjB,eACF,CACA,uRAIE,kBACF,CACA,+SAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,yCACE,aAAc,CACd,oBAAqB,CACrB,gBACF,CACA,sDACE,kBACF,CACA,4DACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,8FAEE,aAAc,CACd,oBACF,CACA,wHAEE,kBACF,CACA,oIAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gDACE,aAAc,CACd,oBACF,CACA,6DACE,kBACF,CACA,mEACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,+NAIE,qBAA0B,CAC1B,oBAAqB,CACrB,kBAAmB,CACnB,gBAAiB,CACjB,eACF,CACA,mRAIE,kBACF,CACA,2SAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,4CACE,aAAc,CACd,oBAAqB,CACrB,gBACF,CACA,yDACE,kBACF,CACA,+DACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,oGAEE,aAAc,CACd,oBACF,CACA,8HAEE,kBACF,CACA,0IAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,mDACE,aAAc,CACd,oBACF,CACA,gEACE,kBACF,CACA,sEACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,2OAIE,qBAA0B,CAC1B,oBAAqB,CACrB,kBAAmB,CACnB,gBAAiB,CACjB,eACF,CACA,+RAIE,kBACF,CACA,uTAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,yDACE,aAAc,CACd,wBAAyB,CACzB,gBACF,CACA,sEACE,kBACF,CACA,4EACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,8HAEE,aAAc,CACd,wBACF,CACA,wJAEE,kBACF,CACA,oKAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gEACE,aAAc,CACd,wBACF,CACA,6EACE,kBACF,CACA,mFACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,+RAIE,qBAA0B,CAC1B,oBAAqB,CACrB,kBAAmB,CACnB,gBAAiB,CACjB,eACF,CACA,mVAIE,kBACF,CACA,2WAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,wCACE,oBACF,CACA,0CACE,mBAAqB,CACrB,oBACF,CACA,uBACE,UACF,CACA,eACE,oBAAqB,CACrB,OAAQ,CACR,iBAAkB,CAClB,aACF,CACA,UACE,2BAA8B,CAC9B,gBACF,CACA,aACE,gBACF,CACA,aACE,gBACF,CACA,aACE,aACF,CACA,kJAEE,0BAA2B,CAC3B,yBACF,CACA,sKAEE,0BAA2B,CAC3B,yBACF,CACA,oDACE,eAAgB,CAChB,gBACF,CACA,mDACE,eAAgB,CAChB,cACF,CACA,sEAEE,gBAAiB,CACjB,aACF,CA3zDA,gBACE,YACF,CAFA,yBACE,iBAAkB,CAClB,oBAAqB,CACrB,UAAW,CACX,WAAY,CACZ,gBAAiB,CACjB,qBAA0B,CAC1B,cAAe,CACf,kBAAmB,CACnB,qBAAsB,CACtB,qBAAsB,CACtB,wBAAyB,CACzB,iBAAkB,CAClB,kBAAoB,CAEpB,mBACF,CACA,2CACE,SACF,CACA,+CACE,aAAc,CACd,oBAAqB,CACjB,gBACN,CACA,sCACE,aAAc,CACd,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,gDACE,sBACF,CACA,+CACE,sBACF,CACA,2CACE,sBACF,CACA,+BACE,oBAAqB,CACrB,sBACF,CACA,8CACE,oBAAqB,CACrB,+BACF,CACA,gEAEE,oBAAqB,CACrB,wCAA6C,CAC7C,sBAAuB,CACvB,SACF,CACA,8FAEE,oBAAqB,CACrB,+BACF,CACA,kCACE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,eAAgB,CAChB,kBAAmB,CACnB,SACF,CACA,wCACE,oBAAqB,CACrB,sBACF,CACA,mCACE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,eAAgB,CAChB,kBAAmB,CACnB,SACF,CACA,yCACE,oBAAqB,CACrB,sBACF,CACA,+PAME,4BAA6B,CAC7B,WAAY,CACZ,eACF,CACA,iCACE,cAAe,CACf,WAAY,CACZ,eAAgB,CAChB,kBAAmB,CACnB,qBAAsB,CACtB,4BACF,CACA,4BACE,kBAAmB,CACnB,cACF,CACA,4BACE,aACF,CACA,6BACE,aACF,CACA,sEACE,oBAAqB,CACrB,sBAAuB,CACvB,SACF,CACA,qFACE,oBAAqB,CACrB,+BACF,CACA,oGACE,SACF,CACA,gEAEE,SACF,CACA,uDACE,sBACF,CACA,yCACE,SAAU,CACV,WAAY,CACZ,YACF,CACA,+CACE,yBACF,CACA,gCACE,OAAQ,CACR,iBAAkB,CAClB,aACF,CACA,oCAEE,YAAa,CACb,SAAU,CACV,kBACF,CACA,wEAEE,gBACF,CACA,6BACE,qBACF,CACA,iCACE,gBACF,CACA,kBACE,gBACF,CACA,kBACE,eACF,CACA,oDAEE,QAAS,CACT,qBAA0B,CAC1B,cAAe,CACf,mBAAoB,CACpB,cAAe,CACf,oBACF,CACA,gEAEE,qBACF,CACA,kEAEE,qBACF,CACA,kEAEE,iBACF,CACA,0EAEE,YACF,CACA,iDACE,mBAAqB,CACrB,kBACF,CACA,uEACE,iBAAkB,CAClB,OAAQ,CACR,SAAU,CACV,SACF,CACA,kLAEE,eAAgB,CAChB,oBACF,CACA,0LAEE,oBAAqB,CACrB,uCAA4C,CAC5C,sBAAuB,CACvB,SACF,CACA,0CACE,aACF,CACA,sLAEE,eAAgB,CAChB,oBACF,CACA,8LAEE,oBAAqB,CACrB,wCAA6C,CAC7C,sBAAuB,CACvB,SACF,CACA,4CACE,aACF,CACA,kSAEE,eAAgB,CAChB,oBACF,CACA,0SAEE,oBAAqB,CACrB,uCAA4C,CAC5C,sBAAuB,CACvB,SACF,CACA,wDACE,aACF,CACA,sSAEE,eAAgB,CAChB,oBACF,CACA,8SAEE,oBAAqB,CACrB,wCAA6C,CAC7C,sBAAuB,CACvB,SACF,CACA,0DACE,aACF,CACA,yTAIE,kBACF,CACA,6DACE,aAAc,CACd,oBACF,CACA,+DACE,aAAc,CACd,oBACF,CACA,WACE,qBAAsB,CACtB,QAAS,CAET,yBAA0B,CAC1B,eAAgB,CAChB,mCAA6B,CAC7B,iBAAkB,CAClB,oBAAqB,CACrB,UAAW,CACX,WAAY,CACZ,gBAAiB,CACjB,qBAA0B,CAC1B,cAAe,CACf,kBAAmB,CACnB,qBAAsB,CACtB,qBAAsB,CACtB,wBAAyB,CACzB,iBAAkB,CAClB,kBAEF,CACA,6BACE,SACF,CACA,iCACE,aAAc,CACd,oBAAqB,CACjB,gBACN,CACA,wBACE,aAAc,CACd,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,kCACE,sBACF,CACA,iCACE,sBACF,CACA,6BACE,sBACF,CACA,iBACE,oBAAqB,CACrB,sBACF,CACA,gCACE,oBAAqB,CACrB,+BACF,CACA,oCAEE,oBAAqB,CACrB,wCAA6C,CAC7C,sBAAuB,CACvB,SACF,CACA,kEAEE,oBAAqB,CACrB,+BACF,CACA,oBACE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,eAAgB,CAChB,kBAAmB,CACnB,SACF,CACA,0BACE,oBAAqB,CACrB,sBACF,CACA,qBACE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,eAAgB,CAChB,kBAAmB,CACnB,SACF,CACA,2BACE,oBAAqB,CACrB,sBACF,CACA,2KAME,4BAA6B,CAC7B,WAAY,CACZ,eACF,CACA,mBACE,cAAe,CACf,WAAY,CACZ,eAAgB,CAChB,kBAAmB,CACnB,qBAAsB,CACtB,4BACF,CACA,cACE,kBAAmB,CACnB,cACF,CACA,cACE,aACF,CACA,eACE,aACF,CACA,iBACE,qBAAsB,CACtB,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,mCAA6B,CAC7B,iBAAkB,CAClB,aAAc,CACd,UAAW,CACX,wBAAyB,CACzB,gBACF,CACA,8BACE,UAAW,CACX,eAAgB,CAChB,cACF,CACA,+BACE,iBACF,CACA,0CACE,eACF,CACA,yEAGE,kBACF,CACA,kLAGE,eACF,CACA,6CAEE,SAAU,CACV,kBAAmB,CACnB,qBACF,CACA,wBACE,uBACF,CACA,4BACE,UAAW,CACX,UAAW,CACX,eAAgB,CAChB,kBACF,CAKA,oEACE,SAAU,CACV,sBACF,CACA,gEACE,SACF,CACA,uBACE,iBAAkB,CAClB,cAAe,CACf,qBAA0B,CAC1B,eAAmB,CACnB,cAAe,CACf,iBAAkB,CAClB,wBAAyB,CACzB,wBAAyB,CACzB,iBAAkB,CAClB,kBACF,CACA,mCACE,iBACF,CACA,2GACE,wBAAyB,CACzB,4BAA6B,CAC7B,eACF,CACA,6HAEE,aACF,CACA,4CACE,iBAAkB,CAClB,4BACF,CACA,gEACE,eAAgB,CAChB,QAAS,CACT,eACF,CAMA,wNAEE,yBAA0B,CAC1B,4BACF,CACA,uEACE,wBAAyB,CACzB,2BACF,CACA,sEACE,yBAA0B,CAC1B,4BACF,CACA,mCACE,cACF,CACA,kCACE,aACF,CAMA,oNAEE,wBAAyB,CACzB,2BACF,CACA,0EAEE,kBAAmB,CACnB,cACF,CACA,0EAEE,aACF,CACA,4DACE,WACF,CACA,4DACE,WACF,CACA,2DACE,yBAA0B,CAC1B,4BACF,CACA,6EACE,0BAA2B,CAC3B,6BACF,CACA,0IAEE,wBAAyB,CACzB,2BACF,CACA,yCACE,aACF,CACA,gDACE,aAAc,CACd,UACF,CACA,+CACE,aAAc,CACd,UAAW,CACX,UACF,CACA,0PAGE,sBACF,CAMA,whBAGE,SACF,CACA,2CACE,oBAAqB,CACrB,UAAW,CACX,kBAAmB,CACnB,eACF,CAIA,6HACE,mBACF,CACA,2DACE,iBAAkB,CAClB,sBACF,CACA,oDACE,UACF,CACA,8SAIE,sBAAuB,CACvB,eACF,CAgBA,gxBACE,SACF,CACA,2TAIE,0BAA2B,CAC3B,6BACF,CACA,0TAIE,sBAAuB,CACvB,2BAA4B,CAC5B,8BACF,CACA,8EACE,kBACF,CACA,2FACE,gBACF,CAIA,yRACE,eACF,CACA,gIACE,yBACF,CACA,oGAEE,yBACF,CACA,wDACE,8BAA+B,CAC/B,aACF,CACA,uDACE,cAAe,CACf,6BACF,CAKA,iMACE,yBACF,CACA,+EACE,yBACF,CACA,+EACE,cAAe,CACf,gBAAiB,CACjB,qBACF,CACA,2YAIE,yBACF,CACA,ufAKE,qBAAsB,CACtB,yBACF,CACA,mGACE,iBAAkB,CAClB,aACF,CACA,oIACE,yBACF,CACA,yBACE,oBAAqB,CACrB,UAAW,CACX,gBAAiB,CACjB,kBACF,CACA,iCACE,qBAA0B,CAC1B,cAAe,CACf,kBACF,CACA,uCACE,qBACF,CACA,uBACE,WACF,CACA,oCACE,WACF,CACA,oCACE,WAAY,CACZ,eAAgB,CAChB,kBACF,CACA,0CACE,WACF,CACA,qCACE,WAAY,CACZ,qBAA0B,CAC1B,kBAAmB,CACnB,wBAAyB,CACzB,mBACF,CACA,qEACE,mBACF,CACA,2BACE,iBAAkB,CAClB,KAAM,CACN,UAAW,CACX,QAAS,CACT,SAAU,CACV,mBAAoB,CACpB,kBAAmB,CACnB,WACF,CACA,sEAEE,oBACF,CACA,kNAEE,yBACF,CACA,2CACE,eACF,CACA,gCACE,kBACF,CACA,qEACE,SAAU,CACV,SAAU,CACV,QACF,CACA,8FACE,aAAc,CACd,gBAAiB,CACjB,yBACF,CACA,oHACE,qBACF,CACA,2IACE,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MACF,CACA,yBACE,WACF,CACA,8DAEE,SACF,CACA,iDACE,WACF,CACA,iDACE,WACF,CAIA,kDACE,aACF,CACA,qEACE,WAAY,CACZ,YACF,CACA,+CACE,gBACF,CACA,+CACE,gBACF,CACA,wBACE,aACF,CACA,4DACE,eACF,CACA,8DACE,cAAe,CACf,eACF,CACA,mDACE,UAAW,CACX,QACF,CACA,sBACE,aACF,CACA,0NAEE,0BAA2B,CAC3B,yBACF,CACA,8IAEE,0BACF,CACA,8DACE,UAAW,CACX,SACF,CACA,uFACE,yBACF,CACA,sEACE,WACE,WACF,CACA,cACE,WACF,CACA,cACE,WACF,CACA,yCACE,WACF,CACF","file":"3.7f9fe742.chunk.css","sourcesContent":["/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n[class^=ant-]::-ms-clear,\n[class*= ant-]::-ms-clear,\n[class^=ant-] input::-ms-clear,\n[class*= ant-] input::-ms-clear,\n[class^=ant-] input::-ms-reveal,\n[class*= ant-] input::-ms-reveal {\n display: none;\n}\n/* stylelint-disable property-no-vendor-prefix, at-rule-no-vendor-prefix */\nhtml,\nbody {\n width: 100%;\n height: 100%;\n}\ninput::-ms-clear,\ninput::-ms-reveal {\n display: none;\n}\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n@-ms-viewport {\n width: device-width;\n}\nbody {\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n font-variant: tabular-nums;\n line-height: 1.5715;\n background-color: #fff;\n font-feature-settings: 'tnum';\n}\n[tabindex='-1']:focus {\n outline: none !important;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n}\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n border-bottom: 0;\n cursor: help;\n}\naddress {\n margin-bottom: 1em;\n font-style: normal;\n line-height: inherit;\n}\ninput[type='text'],\ninput[type='password'],\ninput[type='number'],\ntextarea {\n -webkit-appearance: none;\n}\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1em;\n}\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\ndt {\n font-weight: 500;\n}\ndd {\n margin-bottom: 0.5em;\n margin-left: 0;\n}\nblockquote {\n margin: 0 0 1em;\n}\ndfn {\n font-style: italic;\n}\nb,\nstrong {\n font-weight: bolder;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\na {\n color: #1890ff;\n text-decoration: none;\n background-color: transparent;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n -webkit-text-decoration-skip: objects;\n}\na:hover {\n color: #40a9ff;\n}\na:active {\n color: #096dd9;\n}\na:active,\na:hover {\n text-decoration: none;\n outline: 0;\n}\na:focus {\n text-decoration: none;\n outline: 0;\n}\na[disabled] {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\npre,\ncode,\nkbd,\nsamp {\n font-size: 1em;\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;\n}\npre {\n margin-top: 0;\n margin-bottom: 1em;\n overflow: auto;\n}\nfigure {\n margin: 0 0 1em;\n}\nimg {\n vertical-align: middle;\n border-style: none;\n}\na,\narea,\nbutton,\n[role='button'],\ninput:not([type='range']),\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\ntable {\n border-collapse: collapse;\n}\ncaption {\n padding-top: 0.75em;\n padding-bottom: 0.3em;\n color: rgba(0, 0, 0, 0.45);\n text-align: left;\n caption-side: bottom;\n}\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\nbutton,\ninput {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\nbutton::-moz-focus-inner,\n[type='button']::-moz-focus-inner,\n[type='reset']::-moz-focus-inner,\n[type='submit']::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\ninput[type='radio'],\ninput[type='checkbox'] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type='date'],\ninput[type='time'],\ninput[type='datetime-local'],\ninput[type='month'] {\n -webkit-appearance: listbox;\n}\ntextarea {\n overflow: auto;\n resize: vertical;\n}\nfieldset {\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: 0.5em;\n padding: 0;\n color: inherit;\n font-size: 1.5em;\n line-height: inherit;\n white-space: normal;\n}\nprogress {\n vertical-align: baseline;\n}\n[type='number']::-webkit-inner-spin-button,\n[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n[type='search'] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n[type='search']::-webkit-search-cancel-button,\n[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\noutput {\n display: inline-block;\n}\nsummary {\n display: list-item;\n}\ntemplate {\n display: none;\n}\n[hidden] {\n display: none !important;\n}\nmark {\n padding: 0.2em;\n background-color: #feffe6;\n}\n::-moz-selection {\n color: #fff;\n background: #1890ff;\n}\n::selection {\n color: #fff;\n background: #1890ff;\n}\n.clearfix::before {\n display: table;\n content: '';\n}\n.clearfix::after {\n display: table;\n clear: both;\n content: '';\n}\n.anticon {\n display: inline-block;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.anticon > * {\n line-height: 1;\n}\n.anticon svg {\n display: inline-block;\n}\n.anticon::before {\n display: none;\n}\n.anticon .anticon-icon {\n display: block;\n}\n.anticon > .anticon {\n line-height: 0;\n vertical-align: 0;\n}\n.anticon[tabindex] {\n cursor: pointer;\n}\n.anticon-spin::before {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n.ant-fade-enter,\n.ant-fade-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-fade-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-fade-enter.ant-fade-enter-active,\n.ant-fade-appear.ant-fade-appear-active {\n -webkit-animation-name: antFadeIn;\n animation-name: antFadeIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-fade-leave.ant-fade-leave-active {\n -webkit-animation-name: antFadeOut;\n animation-name: antFadeOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-fade-enter,\n.ant-fade-appear {\n opacity: 0;\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n}\n.ant-fade-leave {\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear;\n}\n@-webkit-keyframes antFadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes antFadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@-webkit-keyframes antFadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n@keyframes antFadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n.ant-move-up-enter,\n.ant-move-up-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-move-up-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-move-up-enter.ant-move-up-enter-active,\n.ant-move-up-appear.ant-move-up-appear-active {\n -webkit-animation-name: antMoveUpIn;\n animation-name: antMoveUpIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-move-up-leave.ant-move-up-leave-active {\n -webkit-animation-name: antMoveUpOut;\n animation-name: antMoveUpOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-up-enter,\n.ant-move-up-appear {\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-up-leave {\n -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-down-enter,\n.ant-move-down-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-move-down-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-move-down-enter.ant-move-down-enter-active,\n.ant-move-down-appear.ant-move-down-appear-active {\n -webkit-animation-name: antMoveDownIn;\n animation-name: antMoveDownIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-move-down-leave.ant-move-down-leave-active {\n -webkit-animation-name: antMoveDownOut;\n animation-name: antMoveDownOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-down-enter,\n.ant-move-down-appear {\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-down-leave {\n -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-left-enter,\n.ant-move-left-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-move-left-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-move-left-enter.ant-move-left-enter-active,\n.ant-move-left-appear.ant-move-left-appear-active {\n -webkit-animation-name: antMoveLeftIn;\n animation-name: antMoveLeftIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-move-left-leave.ant-move-left-leave-active {\n -webkit-animation-name: antMoveLeftOut;\n animation-name: antMoveLeftOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-left-enter,\n.ant-move-left-appear {\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-left-leave {\n -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-right-enter,\n.ant-move-right-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-move-right-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-move-right-enter.ant-move-right-enter-active,\n.ant-move-right-appear.ant-move-right-appear-active {\n -webkit-animation-name: antMoveRightIn;\n animation-name: antMoveRightIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-move-right-leave.ant-move-right-leave-active {\n -webkit-animation-name: antMoveRightOut;\n animation-name: antMoveRightOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-right-enter,\n.ant-move-right-appear {\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-right-leave {\n -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n@-webkit-keyframes antMoveDownIn {\n 0% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveDownIn {\n 0% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@-webkit-keyframes antMoveDownOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveDownOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@-webkit-keyframes antMoveLeftIn {\n 0% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveLeftIn {\n 0% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@-webkit-keyframes antMoveLeftOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveLeftOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@-webkit-keyframes antMoveRightIn {\n 0% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveRightIn {\n 0% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@-webkit-keyframes antMoveRightOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveRightOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@-webkit-keyframes antMoveUpIn {\n 0% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveUpIn {\n 0% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@-webkit-keyframes antMoveUpOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveUpOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@-webkit-keyframes loadingCircle {\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes loadingCircle {\n 100% {\n transform: rotate(360deg);\n }\n}\n[ant-click-animating='true'],\n[ant-click-animating-without-extra-node='true'] {\n position: relative;\n}\nhtml {\n --antd-wave-shadow-color: #1890ff;\n --scroll-bar: 0;\n}\n[ant-click-animating-without-extra-node='true']::after,\n.ant-click-animating-node {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n border-radius: inherit;\n box-shadow: 0 0 0 0 #1890ff;\n box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);\n opacity: 0.2;\n -webkit-animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);\n animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);\n -webkit-animation-fill-mode: forwards;\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n@-webkit-keyframes waveEffect {\n 100% {\n box-shadow: 0 0 0 #1890ff;\n box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);\n }\n}\n@keyframes waveEffect {\n 100% {\n box-shadow: 0 0 0 #1890ff;\n box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);\n }\n}\n@-webkit-keyframes fadeEffect {\n 100% {\n opacity: 0;\n }\n}\n@keyframes fadeEffect {\n 100% {\n opacity: 0;\n }\n}\n.ant-slide-up-enter,\n.ant-slide-up-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-slide-up-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-slide-up-enter.ant-slide-up-enter-active,\n.ant-slide-up-appear.ant-slide-up-appear-active {\n -webkit-animation-name: antSlideUpIn;\n animation-name: antSlideUpIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-slide-up-leave.ant-slide-up-leave-active {\n -webkit-animation-name: antSlideUpOut;\n animation-name: antSlideUpOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-up-enter,\n.ant-slide-up-appear {\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-up-leave {\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-down-enter,\n.ant-slide-down-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-slide-down-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-slide-down-enter.ant-slide-down-enter-active,\n.ant-slide-down-appear.ant-slide-down-appear-active {\n -webkit-animation-name: antSlideDownIn;\n animation-name: antSlideDownIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-slide-down-leave.ant-slide-down-leave-active {\n -webkit-animation-name: antSlideDownOut;\n animation-name: antSlideDownOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-down-enter,\n.ant-slide-down-appear {\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-down-leave {\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-left-enter,\n.ant-slide-left-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-slide-left-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-slide-left-enter.ant-slide-left-enter-active,\n.ant-slide-left-appear.ant-slide-left-appear-active {\n -webkit-animation-name: antSlideLeftIn;\n animation-name: antSlideLeftIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-slide-left-leave.ant-slide-left-leave-active {\n -webkit-animation-name: antSlideLeftOut;\n animation-name: antSlideLeftOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-left-enter,\n.ant-slide-left-appear {\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-left-leave {\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-right-enter,\n.ant-slide-right-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-slide-right-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-slide-right-enter.ant-slide-right-enter-active,\n.ant-slide-right-appear.ant-slide-right-appear-active {\n -webkit-animation-name: antSlideRightIn;\n animation-name: antSlideRightIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-slide-right-leave.ant-slide-right-leave-active {\n -webkit-animation-name: antSlideRightOut;\n animation-name: antSlideRightOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-right-enter,\n.ant-slide-right-appear {\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-right-leave {\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n@-webkit-keyframes antSlideUpIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideUpIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@-webkit-keyframes antSlideUpOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideUpOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@-webkit-keyframes antSlideDownIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n}\n@keyframes antSlideDownIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n}\n@-webkit-keyframes antSlideDownOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n}\n@keyframes antSlideDownOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n}\n@-webkit-keyframes antSlideLeftIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideLeftIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@-webkit-keyframes antSlideLeftOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideLeftOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@-webkit-keyframes antSlideRightIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideRightIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n}\n@-webkit-keyframes antSlideRightOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideRightOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n}\n.ant-zoom-enter,\n.ant-zoom-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-enter.ant-zoom-enter-active,\n.ant-zoom-appear.ant-zoom-appear-active {\n -webkit-animation-name: antZoomIn;\n animation-name: antZoomIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-zoom-leave.ant-zoom-leave-active {\n -webkit-animation-name: antZoomOut;\n animation-name: antZoomOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-enter,\n.ant-zoom-appear {\n transform: scale(0);\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-enter-prepare,\n.ant-zoom-appear-prepare {\n transform: none;\n}\n.ant-zoom-leave {\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-big-enter,\n.ant-zoom-big-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-big-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-big-enter.ant-zoom-big-enter-active,\n.ant-zoom-big-appear.ant-zoom-big-appear-active {\n -webkit-animation-name: antZoomBigIn;\n animation-name: antZoomBigIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-zoom-big-leave.ant-zoom-big-leave-active {\n -webkit-animation-name: antZoomBigOut;\n animation-name: antZoomBigOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-big-enter,\n.ant-zoom-big-appear {\n transform: scale(0);\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-big-enter-prepare,\n.ant-zoom-big-appear-prepare {\n transform: none;\n}\n.ant-zoom-big-leave {\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-big-fast-enter,\n.ant-zoom-big-fast-appear {\n -webkit-animation-duration: 0.1s;\n animation-duration: 0.1s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-big-fast-leave {\n -webkit-animation-duration: 0.1s;\n animation-duration: 0.1s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active,\n.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active {\n -webkit-animation-name: antZoomBigIn;\n animation-name: antZoomBigIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active {\n -webkit-animation-name: antZoomBigOut;\n animation-name: antZoomBigOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-big-fast-enter,\n.ant-zoom-big-fast-appear {\n transform: scale(0);\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-big-fast-enter-prepare,\n.ant-zoom-big-fast-appear-prepare {\n transform: none;\n}\n.ant-zoom-big-fast-leave {\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-up-enter,\n.ant-zoom-up-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-up-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-up-enter.ant-zoom-up-enter-active,\n.ant-zoom-up-appear.ant-zoom-up-appear-active {\n -webkit-animation-name: antZoomUpIn;\n animation-name: antZoomUpIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-zoom-up-leave.ant-zoom-up-leave-active {\n -webkit-animation-name: antZoomUpOut;\n animation-name: antZoomUpOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-up-enter,\n.ant-zoom-up-appear {\n transform: scale(0);\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-up-enter-prepare,\n.ant-zoom-up-appear-prepare {\n transform: none;\n}\n.ant-zoom-up-leave {\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-down-enter,\n.ant-zoom-down-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-down-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-down-enter.ant-zoom-down-enter-active,\n.ant-zoom-down-appear.ant-zoom-down-appear-active {\n -webkit-animation-name: antZoomDownIn;\n animation-name: antZoomDownIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-zoom-down-leave.ant-zoom-down-leave-active {\n -webkit-animation-name: antZoomDownOut;\n animation-name: antZoomDownOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-down-enter,\n.ant-zoom-down-appear {\n transform: scale(0);\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-down-enter-prepare,\n.ant-zoom-down-appear-prepare {\n transform: none;\n}\n.ant-zoom-down-leave {\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-left-enter,\n.ant-zoom-left-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-left-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-left-enter.ant-zoom-left-enter-active,\n.ant-zoom-left-appear.ant-zoom-left-appear-active {\n -webkit-animation-name: antZoomLeftIn;\n animation-name: antZoomLeftIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-zoom-left-leave.ant-zoom-left-leave-active {\n -webkit-animation-name: antZoomLeftOut;\n animation-name: antZoomLeftOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-left-enter,\n.ant-zoom-left-appear {\n transform: scale(0);\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-left-enter-prepare,\n.ant-zoom-left-appear-prepare {\n transform: none;\n}\n.ant-zoom-left-leave {\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-right-enter,\n.ant-zoom-right-appear {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-right-leave {\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-play-state: paused;\n animation-play-state: paused;\n}\n.ant-zoom-right-enter.ant-zoom-right-enter-active,\n.ant-zoom-right-appear.ant-zoom-right-appear-active {\n -webkit-animation-name: antZoomRightIn;\n animation-name: antZoomRightIn;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n}\n.ant-zoom-right-leave.ant-zoom-right-leave-active {\n -webkit-animation-name: antZoomRightOut;\n animation-name: antZoomRightOut;\n -webkit-animation-play-state: running;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-right-enter,\n.ant-zoom-right-appear {\n transform: scale(0);\n opacity: 0;\n -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-right-enter-prepare,\n.ant-zoom-right-appear-prepare {\n transform: none;\n}\n.ant-zoom-right-leave {\n -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n@-webkit-keyframes antZoomIn {\n 0% {\n transform: scale(0.2);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes antZoomIn {\n 0% {\n transform: scale(0.2);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@-webkit-keyframes antZoomOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.2);\n opacity: 0;\n }\n}\n@keyframes antZoomOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.2);\n opacity: 0;\n }\n}\n@-webkit-keyframes antZoomBigIn {\n 0% {\n transform: scale(0.8);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes antZoomBigIn {\n 0% {\n transform: scale(0.8);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@-webkit-keyframes antZoomBigOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.8);\n opacity: 0;\n }\n}\n@keyframes antZoomBigOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.8);\n opacity: 0;\n }\n}\n@-webkit-keyframes antZoomUpIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n}\n@keyframes antZoomUpIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n}\n@-webkit-keyframes antZoomUpOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n}\n@keyframes antZoomUpOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n}\n@-webkit-keyframes antZoomLeftIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n}\n@keyframes antZoomLeftIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n}\n@-webkit-keyframes antZoomLeftOut {\n 0% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n}\n@keyframes antZoomLeftOut {\n 0% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n}\n@-webkit-keyframes antZoomRightIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n}\n@keyframes antZoomRightIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n}\n@-webkit-keyframes antZoomRightOut {\n 0% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n}\n@keyframes antZoomRightOut {\n 0% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n}\n@-webkit-keyframes antZoomDownIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n}\n@keyframes antZoomDownIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n}\n@-webkit-keyframes antZoomDownOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n}\n@keyframes antZoomDownOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n}\n.ant-motion-collapse-legacy {\n overflow: hidden;\n}\n.ant-motion-collapse-legacy-active {\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n.ant-motion-collapse {\n overflow: hidden;\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n"]} \ No newline at end of file diff --git a/build/static/css/351.9cff874d.chunk.css b/build/static/css/351.9cff874d.chunk.css new file mode 100644 index 0000000..67fd15e --- /dev/null +++ b/build/static/css/351.9cff874d.chunk.css @@ -0,0 +1,2 @@ +#root{height:100%}.ant-layout{min-height:100%;min-width:1920px}body{font-family:monospace!important;font-weight:200}.icons-wrapper svg{color:#7e7e7e}.icons-wrapper svg:hover{color:#1c39bb}td{border:1px solid rgba(0,0,0,.07)}.animateGrow{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-name:animateBlockHeight;animation-name:animateBlockHeight;background-color:#fff;width:-webkit-max-content;width:max-content}@-webkit-keyframes animateBlockHeight{0%{background-color:#fff}35%{background-color:rgba(230,255,117,.5)}65%{background-color:rgba(230,255,117,.5)}to{background-color:#fff}}@keyframes animateBlockHeight{0%{background-color:#fff}35%{background-color:rgba(230,255,117,.5)}65%{background-color:rgba(230,255,117,.5)}to{background-color:#fff}}.nodeaddress:hover{color:#1c39bb}.tableHeader span{position:relative}.tableHeader:hover{color:#004d59}.tableHeader span .sort-icon{position:absolute;right:-5px;top:50%}.tableHeader span .sort-icon.desc{-webkit-transform:translate(100%,-50%) rotate(0deg);transform:translate(100%,-50%) rotate(0deg)}.tableHeader span .sort-icon.asc{-webkit-transform:translate(100%,-50%) rotate(180deg);transform:translate(100%,-50%) rotate(180deg)}.overview-list-wrapper{border-bottom:1px solid #1c39bb;padding-bottom:28px}.overview-list{background:linear-gradient(269.82deg,#fff -20.26%,#fff 99.82%);border-radius:10px;-webkit-column-count:6;column-count:6;-webkit-filter:drop-shadow(0 4px 10px rgba(0,0,0,.1));filter:drop-shadow(0 4px 10px rgba(0,0,0,.1));margin:auto;max-width:1880px;opacity:.8;padding:36px 40px 10px}.overview-item{align-items:center;display:flex;margin-bottom:36px}.overview-item__value{padding-left:22px}.overview-item__value-title{color:#182233;font-size:12px;font-weight:600;letter-spacing:-.015em;line-height:15px}.overview-item__value-value{color:#1b34a0;font-size:13px;font-style:normal;font-weight:600;letter-spacing:-.015em;line-height:16px}iframe{display:none}.cta-wrapper{align-items:center;display:flex;justify-content:space-between;margin:37px 0 16px}.cta-wrapper .cta-link{flex:1 1}.hidden{display:none}.paging-wrapper{color:#9ca3af;padding:25px 0}.page-numbers,.page-numbers li{display:flex;justify-content:center}.page-numbers li{align-items:center;border:1.5px solid #9ca3af;cursor:pointer;font-size:14px;font-weight:700;padding:3px 6px}.page-numbers li.paging-item{line-height:1;margin-right:15px}.page-numbers li.paging-item:hover{color:#182233}.page-numbers li.active{border:1.5px solid #1c39bb;color:#1c39bb}.page-numbers .nav-button{border:none;cursor:pointer}.nav-button--prev{margin-right:20px}.nav-button--next{margin-left:5px}.nav-button.disabled{pointer-events:none}.ant-layout-content{background-image:url(/static/media/liquify_bg.c3b67a9ff864bd54b55d.png),url(/static/media/hex_map_bg.897b05f8054f0473543b.png);background-position:top 160px center,top 960px center;background-repeat:no-repeat;display:flex;flex-direction:column;padding:17px 0 0!important}.loading{align-items:center;display:flex;height:100%;justify-content:center;margin:auto;position:relative;width:100%}.loading_icon{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite;height:203px;width:203px}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.ant-layout-footer{align-items:center;background-color:#fff;display:flex;height:110px;position:relative}.ant-layout-footer .link{cursor:pointer;margin-right:12px}.logo-wrapper{align-items:center;color:#182233;display:flex;flex:1 1;font-size:20px;justify-content:center;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.logo-wrapper span{margin-right:12px}.data-table-wrapper{border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.1);position:relative;z-index:1}.data-table-wrapper:before{background:linear-gradient(90.11deg,#fff 1.08%,#eef0fa);content:"";height:100%;left:0;opacity:.9;position:absolute;top:0;width:100%;z-index:-1}.data-table-wrapper tbody{color:#182233;font-size:14px;font-weight:500;letter-spacing:-.01em;line-height:17px}table{border-collapse:initial;border-spacing:0}td,th{border:none;margin:0}tr{box-shadow:0 0 2px rgba(0,0,0,.1)}tr:first-child{background:none;margin-top:2px}.ant-layout-header{min-width:0!important;min-width:auto!important}.header-left{flex:1 1}.header-left span{font-family:Montserrat;font-size:25px;font-style:normal;font-weight:700;letter-spacing:-.015em;line-height:30px}.header-right{gap:60px}.header-right,.header-right .active-node{align-items:center;display:flex;justify-content:center}.header-right .active-node{border-radius:50%;cursor:pointer;height:46px;overflow:hidden;position:relative;width:46px;z-index:1}.header-right .active-node:before{background:rgba(27,52,160,.8);content:"";-webkit-filter:blur(7.5px);filter:blur(7.5px);height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease-in-out;width:100%;z-index:-1}.header-right .active-node:hover:before{opacity:1}.header-right .active-node.active-node--active:before{background:#1c39bb;content:"";-webkit-filter:none;filter:none;opacity:1;z-index:-1}.no-data{height:400px}.no-data,.no-data__content{align-items:center;display:flex;justify-content:center}.no-data__content{background:#fff;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.25);font-size:20px;font-weight:600;height:180px;letter-spacing:-.015em;line-height:32px;width:500px}.button-filter{background:linear-gradient(90deg,#fff,#edeffa 114.85%);border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.25);height:auto;margin-left:40px;padding:5px}.search-input .anticon-search svg{fill:#c8cace;height:24px;width:24px}.filter-modal .ant-modal,.filter-modal .ant-modal-title{color:#182233}.filter-modal .ant-switch{background:#d9dde7}.filter-modal .ant-switch-checked{background:#1c39bb}.filter-modal .ant-modal-content{background:#fff;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.25);overflow:hidden;padding:38px;width:600px}.filter-modal .ant-modal-header{border:none}.filter-modal .ant-modal-title{color:#182233;font-size:25px;font-weight:700;letter-spacing:-.01em;line-height:30px;text-align:center}.filter-modal .ant-modal-body{padding:32px 0 42px;text-align:center}.filter-modal .ant-modal-footer{border:none;padding:0;text-align:center}.filter-modal .ant-modal-footer .ant-btn-default{background:#6b7280;color:#fff}.filter-modal .ant-modal-footer .ant-btn{min-width:110px}.filter-modal .filter-list{-webkit-column-count:2;column-count:2;-webkit-column-gap:100px;column-gap:100px;display:inline-block;margin:0 auto}.filter-modal .filter-item{align-items:center;color:#182233;display:flex;font-size:14px;font-weight:500;justify-content:space-between;letter-spacing:-.01em;line-height:17px;margin-bottom:24px;width:160px}.filter-modal .ant-switch{border-radius:39px;height:17px;line-height:17px}.filter-modal .ant-switch-handle{height:17px;left:0;line-height:17px;top:0}.filter-modal .ant-switch-checked .ant-switch-handle{left:calc(100% - 17px)}.filter-modal .ant-switch-checked .ant-switch-handle:before{background:#d9dde7}.filter-modal .ant-switch-handle:before{background:#1f1f43}.pie-modal{padding-right:200px;position:center}.pie-modal .ant-modal,.pie-modal .ant-modal-title{color:#182233}.pie-modal .ant-modal-content{background:#fff;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.25);overflow:hidden;padding:38px;width:800px}.pie-modal .ant-modal-header{border:none}.pie-modal .ant-modal-title{color:#182233;font-size:25px;font-weight:700;letter-spacing:-.01em;line-height:30px;text-align:center}.pie-modal .ant-modal-body{padding:0 0 42px;text-align:center}.pie-modal .ant-modal-footer{border:none;padding:0;text-align:center}.pie-modal .ant-btn{background:#1c39bb!important;color:#fff;font-size:16px;font-weight:semi-bold;margin:10px}.ant-breadcrumb .current,.ant-breadcrumb a,.ant-breadcrumb-link,.ant-breadcrumb-separator{color:#182233;font-size:14px;font-weight:500;letter-spacing:-.015em;line-height:17px}.ant-breadcrumb .current{color:#1c39bb}.layout-content-wrapper{margin:0 70px}.feedback-modal .ant-modal-content{background:#fff;border-radius:6px;box-shadow:0 4px 10px rgba(0,0,0,.15)}.feedback-modal .anticon{color:#76ca66!important}.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content{color:#7e7e7e;font-size:12px;font-weight:400;letter-spacing:-.01em;line-height:15px}.feedback-modal .ant-modal-body{padding:36px 30px}.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content strong{font-weight:600}.feedback-modal.ant-modal-confirm .ant-modal-confirm-btns{float:none;margin:18px auto 0;text-align:center}.feedback-modal .ant-btn-primary:focus{background:#1c39bb;border-color:#1c39bb}.ant-modal-mask{background:#333!important;opacity:.6!important}.ant-popover-inner{border-radius:6px;text-align:center}.ant-popover-inner .ant-popover-title{border-bottom:.2px solid #9ca3af;color:#7e7e7e;font-size:12px;font-style:normal;font-weight:600;letter-spacing:-.01em;line-height:15px;padding:8px 16px}.ant-popover-inner .ant-popover-inner-content{color:#7e7e7e;font-size:10px;font-style:normal;font-weight:400;letter-spacing:-.01em;line-height:12px}.nodeaddress{display:inline-block;width:85px}.item-to-show{padding:20px 0}.item-to-show .ant-select-selector{border-radius:6px!important}.item-to-show>span{color:#182233;font-size:12px;font-weight:600;letter-spacing:-.015em;line-height:15px;margin-right:20px}.sort-icon.up{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.my-custom-popover .ant-popover-inner{width:1000px}.icon-wrapper{height:13px;margin-right:10px;padding-top:5px;width:13px} +/*# sourceMappingURL=351.9cff874d.chunk.css.map*/ \ No newline at end of file diff --git a/build/static/css/351.9cff874d.chunk.css.map b/build/static/css/351.9cff874d.chunk.css.map new file mode 100644 index 0000000..d20674b --- /dev/null +++ b/build/static/css/351.9cff874d.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/351.9cff874d.chunk.css","mappings":"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","sources":["containers/A_monitor/styles.css"],"sourcesContent":["#root {\r\n height: 100%;\r\n}\r\n.ant-layout {\r\n min-height: 100%;\r\n min-width: 1920px;\r\n}\r\nbody {\r\n font-family: monospace !important;\r\n font-weight: 200;\r\n}\r\n\r\n.icons-wrapper svg {\r\n color: #7e7e7e;\r\n}\r\n.icons-wrapper svg:hover {\r\n color: #1c39bb;\r\n}\r\n\r\ntd {\r\n border-style: solid;\r\n border-width: 1px;\r\n border-color: rgba(0, 0, 0, 0.07);\r\n}\r\n\r\n.animateGrow {\r\n width: max-content;\r\n background-color: white;\r\n animation-name: animateBlockHeight;\r\n animation-duration: 1s;\r\n}\r\n@keyframes animateBlockHeight {\r\n 0% {\r\n background-color: white;\r\n }\r\n 35% {\r\n background-color: rgba(230, 255, 117, 0.5);\r\n }\r\n 65% {\r\n background-color: rgba(230, 255, 117, 0.5);\r\n }\r\n 100% {\r\n background-color: white;\r\n }\r\n}\r\n\r\n.nodeaddress:hover {\r\n color: #1c39bb;\r\n}\r\n\r\n.tableHeader span {\r\n position: relative;\r\n}\r\n\r\n.tableHeader:hover {\r\n color: #004d59;\r\n}\r\n\r\n.tableHeader span .sort-icon {\r\n position: absolute;\r\n top: 50%;\r\n right: -5px;\r\n}\r\n.tableHeader span .sort-icon.desc {\r\n transform: translate(100%, -50%) rotate(0deg);\r\n}\r\n.tableHeader span .sort-icon.asc {\r\n transform: translate(100%, -50%) rotate(180deg);\r\n}\r\n\r\n.overview-list-wrapper {\r\n border-bottom: 1px solid #1c39bb;\r\n padding-bottom: 28px;\r\n}\r\n.overview-list {\r\n column-count: 6;\r\n background: linear-gradient(269.82deg, #ffffff -20.26%, #ffffff 99.82%);\r\n opacity: 0.8;\r\n border-radius: 10px;\r\n padding: 36px 40px 10px;\r\n filter: drop-shadow(0px 4px 10px rgba(0, 0, 0, 0.1));\r\n max-width: 1880px;\r\n margin: auto;\r\n}\r\n\r\n.overview-item {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 36px;\r\n}\r\n\r\n.overview-item__value {\r\n padding-left: 22px;\r\n}\r\n\r\n.overview-item__value-title {\r\n font-weight: 600;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.015em;\r\n color: #182233;\r\n}\r\n\r\n.overview-item__value-value {\r\n font-style: normal;\r\n font-weight: 600;\r\n font-size: 13px;\r\n line-height: 16px;\r\n letter-spacing: -0.015em;\r\n color: #1b34a0;\r\n}\r\n\r\niframe {\r\n display: none;\r\n}\r\n\r\n.cta-wrapper {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin: 37px 0 16px;\r\n}\r\n\r\n.cta-wrapper .cta-link {\r\n flex: 1;\r\n}\r\n\r\n.hidden {\r\n display: none;\r\n}\r\n\r\n.paging-wrapper {\r\n padding: 25px 0;\r\n color: #9ca3af;\r\n}\r\n\r\n.page-numbers {\r\n display: flex;\r\n justify-content: center;\r\n}\r\n.page-numbers li {\r\n border: 1.5px solid #9ca3af;\r\n cursor: pointer;\r\n font-size: 14px;\r\n padding: 3px 6px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-weight: bold;\r\n}\r\n.page-numbers li.paging-item {\r\n margin-right: 15px;\r\n line-height: 1;\r\n}\r\n\r\n.page-numbers li.paging-item:hover {\r\n color: #182233;\r\n}\r\n\r\n.page-numbers li.active {\r\n border: 1.5px solid #1c39bb;\r\n color: #1c39bb;\r\n}\r\n\r\n.page-numbers .nav-button {\r\n border: none;\r\n cursor: pointer;\r\n}\r\n\r\n.nav-button--prev {\r\n margin-right: 20px;\r\n}\r\n.nav-button--next {\r\n margin-left: 5px;\r\n}\r\n\r\n.nav-button.disabled {\r\n pointer-events: none;\r\n}\r\n\r\n.ant-layout-content {\r\n background-image: url(\"./../../assets/images/overview/liquify_bg.png\"),\r\n url(\"./../../assets/images/overview/hex_map_bg.png\");\r\n background-repeat: no-repeat;\r\n background-position: top 160px center, top calc(960px) center;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 17px 0 0 0 !important;\r\n}\r\n\r\n.loading {\r\n position: relative;\r\n margin: auto auto;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.loading_icon {\r\n animation: spin 1s linear infinite;\r\n width: 203px;\r\n height: 203px;\r\n}\r\n\r\n@keyframes spin {\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n\r\n.ant-layout-footer {\r\n background-color: #fff;\r\n height: 110px;\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n}\r\n\r\n.ant-layout-footer .link {\r\n margin-right: 12px;\r\n cursor: pointer;\r\n}\r\n\r\n.logo-wrapper {\r\n flex: 1;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n transform: translate(-50%, -50%);\r\n font-size: 20px;\r\n color: #182233;\r\n}\r\n.logo-wrapper span {\r\n margin-right: 12px;\r\n}\r\n\r\n.data-table-wrapper {\r\n box-shadow: 0px 4px 10px rgb(0 0 0 / 10%);\r\n position: relative;\r\n z-index: 1;\r\n border-radius: 10px;\r\n}\r\n\r\n.data-table-wrapper::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(90.11deg, #ffffff 1.08%, #eef0fa 100%);\r\n opacity: 0.9;\r\n z-index: -1;\r\n}\r\n.data-table-wrapper tbody {\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 17px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n}\r\n\r\ntable {\r\n border-collapse: separate;\r\n border-spacing: 0;\r\n}\r\n\r\ntd,\r\nth {\r\n border: none;\r\n margin: 0;\r\n}\r\n\r\ntr {\r\n box-shadow: 0px 0px 2px rgb(0 0 0 / 10%);\r\n}\r\n\r\ntr:first-child {\r\n background: none;\r\n margin-top: 2px;\r\n}\r\n\r\n.ant-layout-header {\r\n min-width: unset !important;\r\n}\r\n\r\n.header-left {\r\n flex: 1;\r\n}\r\n.header-left span {\r\n font-family: \"Montserrat\";\r\n font-style: normal;\r\n font-weight: 700;\r\n font-size: 25px;\r\n line-height: 30px;\r\n letter-spacing: -0.015em;\r\n}\r\n.header-right {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 60px;\r\n}\r\n\r\n.header-right .active-node {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 46px;\r\n height: 46px;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n position: relative;\r\n z-index: 1;\r\n overflow: hidden;\r\n}\r\n.header-right .active-node::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(27, 52, 160, 0.8);\r\n filter: blur(7.5px);\r\n z-index: -1;\r\n opacity: 0;\r\n transition: opacity 0.3s ease-in-out;\r\n}\r\n.header-right .active-node:hover::before {\r\n opacity: 1;\r\n}\r\n\r\n.header-right .active-node.active-node--active::before {\r\n content: \"\";\r\n background: #1c39bb;\r\n filter: none;\r\n z-index: -1;\r\n opacity: 1;\r\n}\r\n\r\n.no-data {\r\n height: 400px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.no-data__content {\r\n width: 500px;\r\n height: 180px;\r\n background: #ffffff;\r\n box-shadow: 0px 5px 20px rgb(0 0 0 / 25%);\r\n border-radius: 20px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-weight: 600;\r\n font-size: 20px;\r\n line-height: 32px;\r\n letter-spacing: -0.015em;\r\n}\r\n\r\n.button-filter {\r\n height: auto;\r\n padding: 5px;\r\n background: linear-gradient(90deg, #ffffff 0%, #edeffa 114.85%);\r\n box-shadow: 0px 4px 10px rgb(0 0 0 / 25%);\r\n border-radius: 10px;\r\n margin-left: 40px;\r\n}\r\n\r\n.search-input .anticon-search svg {\r\n width: 24px;\r\n height: 24px;\r\n fill: #c8cace;\r\n}\r\n\r\n.filter-modal .ant-modal,\r\n.filter-modal .ant-modal-title {\r\n color: #182233;\r\n}\r\n\r\n.filter-modal .ant-switch {\r\n background: #d9dde7;\r\n}\r\n.filter-modal .ant-switch-checked {\r\n background: #1c39bb;\r\n}\r\n.filter-modal .ant-modal-content {\r\n width: 600px;\r\n background: #ffffff;\r\n box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.25);\r\n border-radius: 20px;\r\n overflow: hidden;\r\n padding: 38px;\r\n}\r\n.filter-modal .ant-modal-header {\r\n border: none;\r\n}\r\n.filter-modal .ant-modal-title {\r\n font-weight: 700;\r\n font-size: 25px;\r\n line-height: 30px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n text-align: center;\r\n}\r\n.filter-modal .ant-modal-body {\r\n text-align: center;\r\n padding: 32px 0 42px;\r\n}\r\n.filter-modal .ant-modal-footer {\r\n border: none;\r\n text-align: center;\r\n padding: 0;\r\n}\r\n.filter-modal .ant-modal-footer .ant-btn-default {\r\n background: #6b7280;\r\n color: #fff;\r\n}\r\n.filter-modal .ant-modal-footer .ant-btn {\r\n min-width: 110px;\r\n}\r\n.filter-modal .filter-list {\r\n column-count: 2;\r\n display: inline-block;\r\n margin: 0 auto;\r\n column-gap: 100px;\r\n}\r\n\r\n.filter-modal .filter-item {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 160px;\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 17px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n margin-bottom: 24px;\r\n}\r\n.filter-modal .ant-switch {\r\n height: 17px;\r\n line-height: 17px;\r\n border-radius: 39px;\r\n}\r\n.filter-modal .ant-switch-handle {\r\n height: 17px;\r\n line-height: 17px;\r\n top: 0;\r\n left: 0;\r\n}\r\n.filter-modal .ant-switch-checked .ant-switch-handle {\r\n left: calc(100% - 17px - 0px);\r\n}\r\n.filter-modal .ant-switch-checked .ant-switch-handle::before {\r\n background: #d9dde7;\r\n}\r\n.filter-modal .ant-switch-handle::before {\r\n background: #1f1f43;\r\n}\r\n\r\n/* .filter-modal .custom-pie-chart {\r\n width: 650px;\r\n height: 100%;\r\n margin: 0 auto;\r\n}\r\n\r\n.filter-modal .custom-pie-chart canvas {\r\n width: 100% !important;\r\n height: 100% !important;\r\n} */\r\n\r\n.pie-modal {\r\n position: center;\r\n padding-right: 200px;\r\n}\r\n\r\n.pie-modal .ant-modal,\r\n.pie-modal .ant-modal-title {\r\n color: #182233;\r\n}\r\n\r\n.pie-modal .ant-modal-content {\r\n width: 800px;\r\n background: #ffffff;\r\n box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.25);\r\n border-radius: 20px;\r\n overflow: hidden;\r\n padding: 38px;\r\n}\r\n.pie-modal .ant-modal-header {\r\n border: none;\r\n}\r\n.pie-modal .ant-modal-title {\r\n font-weight: 700;\r\n font-size: 25px;\r\n line-height: 30px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n text-align: center;\r\n}\r\n.pie-modal .ant-modal-body {\r\n text-align: center;\r\n padding: 0 0 42px;\r\n}\r\n.pie-modal .ant-modal-footer {\r\n border: none;\r\n text-align: center;\r\n padding: 0;\r\n}\r\n\r\n.pie-modal .ant-btn {\r\n background: #1c39bb !important;\r\n color: white;\r\n font-size: 16px;\r\n font-weight: semi-bold;\r\n margin: 10px;\r\n}\r\n\r\n.ant-breadcrumb a,\r\n.ant-breadcrumb .current,\r\n.ant-breadcrumb-link,\r\n.ant-breadcrumb-separator {\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 17px;\r\n letter-spacing: -0.015em;\r\n color: #182233;\r\n}\r\n\r\n.ant-breadcrumb .current {\r\n color: #1c39bb;\r\n}\r\n\r\n.layout-content-wrapper {\r\n margin: 0 70px;\r\n}\r\n\r\n.feedback-modal .ant-modal-content {\r\n background: #ffffff;\r\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.15);\r\n border-radius: 6px;\r\n}\r\n.feedback-modal .anticon {\r\n color: #76ca66 !important;\r\n}\r\n.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content {\r\n font-weight: 400;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.01em;\r\n color: #7e7e7e;\r\n}\r\n.feedback-modal .ant-modal-body {\r\n padding: 36px 30px;\r\n}\r\n.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content strong {\r\n font-weight: 600;\r\n}\r\n.feedback-modal.ant-modal-confirm .ant-modal-confirm-btns {\r\n margin: 18px auto 0;\r\n text-align: center;\r\n float: none;\r\n}\r\n.feedback-modal .ant-btn-primary:focus {\r\n background: #1c39bb;\r\n border-color: #1c39bb;\r\n}\r\n\r\n.ant-modal-mask {\r\n background: #333333 !important;\r\n opacity: 0.6 !important;\r\n}\r\n\r\n.ant-popover-inner {\r\n border-radius: 6px;\r\n text-align: center;\r\n}\r\n.ant-popover-inner .ant-popover-title {\r\n font-style: normal;\r\n font-weight: 600;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.01em;\r\n color: #7e7e7e;\r\n padding: 8px 16px;\r\n border-bottom: 0.2px solid #9ca3af;\r\n}\r\n.ant-popover-inner .ant-popover-inner-content {\r\n font-style: normal;\r\n font-weight: 400;\r\n font-size: 10px;\r\n line-height: 12px;\r\n letter-spacing: -0.01em;\r\n color: #7e7e7e;\r\n}\r\n\r\n.nodeaddress {\r\n display: inline-block;\r\n width: 85px;\r\n}\r\n\r\n.item-to-show {\r\n padding: 20px 0;\r\n}\r\n.item-to-show .ant-select-selector {\r\n border-radius: 6px !important;\r\n}\r\n\r\n.item-to-show > span {\r\n font-weight: 600;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.015em;\r\n color: #182233;\r\n margin-right: 20px;\r\n}\r\n\r\n.sort-icon.up {\r\n transform: rotate(180deg);\r\n}\r\n\r\n.my-custom-popover .ant-popover-inner {\r\n width: 1000px;\r\n}\r\n\r\n.icon-wrapper {\r\n width: 13px;\r\n height: 13px;\r\n padding-top: 5px;\r\n margin-right: 10px;\r\n}\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/css/4.859dae4f.chunk.css b/build/static/css/4.859dae4f.chunk.css deleted file mode 100644 index c4086b9..0000000 --- a/build/static/css/4.859dae4f.chunk.css +++ /dev/null @@ -1,2 +0,0 @@ -body{font-family:monospace!important;font-weight:200}svg:hover{fill:#34c9eb}td{border:1px solid rgba(0,0,0,.07)}.animateGrow{width:-webkit-max-content;width:max-content;background-color:#fff;-webkit-animation-name:animateBlockHeight;animation-name:animateBlockHeight;-webkit-animation-duration:1s;animation-duration:1s}@-webkit-keyframes animateBlockHeight{0%{background-color:#fff}35%{background-color:rgba(230,255,117,.5)}65%{background-color:rgba(230,255,117,.5)}to{background-color:#fff}}@keyframes animateBlockHeight{0%{background-color:#fff}35%{background-color:rgba(230,255,117,.5)}65%{background-color:rgba(230,255,117,.5)}to{background-color:#fff}}.nodeaddress:hover{color:#34c9eb}.tableHeader:hover{color:#004d59} -/*# sourceMappingURL=4.859dae4f.chunk.css.map */ \ No newline at end of file diff --git a/build/static/css/4.859dae4f.chunk.css.map b/build/static/css/4.859dae4f.chunk.css.map deleted file mode 100644 index 1796527..0000000 --- a/build/static/css/4.859dae4f.chunk.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["styles.css"],"names":[],"mappings":"AAAA,KACE,+BAAgC,CAChC,eACF,CAEA,UACE,YACF,CAEA,GAGE,gCACF,CAEA,aACE,yBAAkB,CAAlB,iBAAkB,CAClB,qBAAuB,CACvB,yCAAkC,CAAlC,iCAAkC,CAClC,6BAAsB,CAAtB,qBACF,CACA,sCACI,GAAM,qBAAuB,CAC7B,IAAM,qCAAuC,CAC7C,IAAM,qCAAuC,CAC7C,GAAM,qBAAuB,CACjC,CALA,8BACI,GAAM,qBAAuB,CAC7B,IAAM,qCAAuC,CAC7C,IAAM,qCAAuC,CAC7C,GAAM,qBAAuB,CACjC,CAEA,mBACE,aACF,CAEA,mBACE,aACF","file":"4.859dae4f.chunk.css","sourcesContent":["body {\n font-family: monospace!important;\n font-weight: 200;\n}\n\nsvg:hover {\n fill: #34c9eb;\n}\n\ntd {\n border-style: solid;\n border-width: 1px;\n border-color: rgba(0,0,0,0.07)\n}\n\n.animateGrow {\n width: max-content;\n background-color: white;\n animation-name: animateBlockHeight;\n animation-duration: 1s;\n}\n@keyframes animateBlockHeight {\n 0% {background-color:white;}\n 35% {background-color:rgba(230,255,117,0.5);}\n 65% {background-color:rgba(230,255,117,0.5);}\n 100% {background-color:white;}\n}\n\n.nodeaddress:hover {\n color: #34c9eb\n}\n\n.tableHeader:hover {\n color: #004d59\n}\n"]} \ No newline at end of file diff --git a/build/static/css/627.9cff874d.chunk.css b/build/static/css/627.9cff874d.chunk.css new file mode 100644 index 0000000..2a76f8e --- /dev/null +++ b/build/static/css/627.9cff874d.chunk.css @@ -0,0 +1,2 @@ +#root{height:100%}.ant-layout{min-height:100%;min-width:1920px}body{font-family:monospace!important;font-weight:200}.icons-wrapper svg{color:#7e7e7e}.icons-wrapper svg:hover{color:#1c39bb}td{border:1px solid rgba(0,0,0,.07)}.animateGrow{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-name:animateBlockHeight;animation-name:animateBlockHeight;background-color:#fff;width:-webkit-max-content;width:max-content}@-webkit-keyframes animateBlockHeight{0%{background-color:#fff}35%{background-color:rgba(230,255,117,.5)}65%{background-color:rgba(230,255,117,.5)}to{background-color:#fff}}@keyframes animateBlockHeight{0%{background-color:#fff}35%{background-color:rgba(230,255,117,.5)}65%{background-color:rgba(230,255,117,.5)}to{background-color:#fff}}.nodeaddress:hover{color:#1c39bb}.tableHeader span{position:relative}.tableHeader:hover{color:#004d59}.tableHeader span .sort-icon{position:absolute;right:-5px;top:50%}.tableHeader span .sort-icon.desc{-webkit-transform:translate(100%,-50%) rotate(0deg);transform:translate(100%,-50%) rotate(0deg)}.tableHeader span .sort-icon.asc{-webkit-transform:translate(100%,-50%) rotate(180deg);transform:translate(100%,-50%) rotate(180deg)}.overview-list-wrapper{border-bottom:1px solid #1c39bb;padding-bottom:28px}.overview-list{background:linear-gradient(269.82deg,#fff -20.26%,#fff 99.82%);border-radius:10px;-webkit-column-count:6;column-count:6;-webkit-filter:drop-shadow(0 4px 10px rgba(0,0,0,.1));filter:drop-shadow(0 4px 10px rgba(0,0,0,.1));margin:auto;max-width:1880px;opacity:.8;padding:36px 40px 10px}.overview-item{align-items:center;display:flex;margin-bottom:36px}.overview-item__value{padding-left:22px}.overview-item__value-title{color:#182233;font-size:12px;font-weight:600;letter-spacing:-.015em;line-height:15px}.overview-item__value-value{color:#1b34a0;font-size:13px;font-style:normal;font-weight:600;letter-spacing:-.015em;line-height:16px}iframe{display:none}.cta-wrapper{align-items:center;display:flex;justify-content:space-between;margin:37px 0 16px}.cta-wrapper .cta-link{flex:1 1}.hidden{display:none}.paging-wrapper{color:#9ca3af;padding:25px 0}.page-numbers,.page-numbers li{display:flex;justify-content:center}.page-numbers li{align-items:center;border:1.5px solid #9ca3af;cursor:pointer;font-size:14px;font-weight:700;padding:3px 6px}.page-numbers li.paging-item{line-height:1;margin-right:15px}.page-numbers li.paging-item:hover{color:#182233}.page-numbers li.active{border:1.5px solid #1c39bb;color:#1c39bb}.page-numbers .nav-button{border:none;cursor:pointer}.nav-button--prev{margin-right:20px}.nav-button--next{margin-left:5px}.nav-button.disabled{pointer-events:none}.ant-layout-content{background-image:url(/static/media/liquify_bg.c3b67a9ff864bd54b55d.png),url(/static/media/hex_map_bg.897b05f8054f0473543b.png);background-position:top 160px center,top 960px center;background-repeat:no-repeat;display:flex;flex-direction:column;padding:17px 0 0!important}.loading{align-items:center;display:flex;height:100%;justify-content:center;margin:auto;position:relative;width:100%}.loading_icon{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite;height:203px;width:203px}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.ant-layout-footer{align-items:center;background-color:#fff;display:flex;height:110px;position:relative}.ant-layout-footer .link{cursor:pointer;margin-right:12px}.logo-wrapper{align-items:center;color:#182233;display:flex;flex:1 1;font-size:20px;justify-content:center;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.logo-wrapper span{margin-right:12px}.data-table-wrapper{border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.1);position:relative;z-index:1}.data-table-wrapper:before{background:linear-gradient(90.11deg,#fff 1.08%,#eef0fa);content:"";height:100%;left:0;opacity:.9;position:absolute;top:0;width:100%;z-index:-1}.data-table-wrapper tbody{color:#182233;font-size:14px;font-weight:500;letter-spacing:-.01em;line-height:17px}table{border-collapse:initial;border-spacing:0}td,th{border:none;margin:0}tr{box-shadow:0 0 2px rgba(0,0,0,.1)}tr:first-child{background:none;margin-top:2px}.ant-layout-header{min-width:0!important;min-width:auto!important}.header-left{flex:1 1}.header-left span{font-family:Montserrat;font-size:25px;font-style:normal;font-weight:700;letter-spacing:-.015em;line-height:30px}.header-right{gap:60px}.header-right,.header-right .active-node{align-items:center;display:flex;justify-content:center}.header-right .active-node{border-radius:50%;cursor:pointer;height:46px;overflow:hidden;position:relative;width:46px;z-index:1}.header-right .active-node:before{background:rgba(27,52,160,.8);content:"";-webkit-filter:blur(7.5px);filter:blur(7.5px);height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease-in-out;width:100%;z-index:-1}.header-right .active-node:hover:before{opacity:1}.header-right .active-node.active-node--active:before{background:#1c39bb;content:"";-webkit-filter:none;filter:none;opacity:1;z-index:-1}.no-data{height:400px}.no-data,.no-data__content{align-items:center;display:flex;justify-content:center}.no-data__content{background:#fff;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.25);font-size:20px;font-weight:600;height:180px;letter-spacing:-.015em;line-height:32px;width:500px}.button-filter{background:linear-gradient(90deg,#fff,#edeffa 114.85%);border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.25);height:auto;margin-left:40px;padding:5px}.search-input .anticon-search svg{fill:#c8cace;height:24px;width:24px}.filter-modal .ant-modal,.filter-modal .ant-modal-title{color:#182233}.filter-modal .ant-switch{background:#d9dde7}.filter-modal .ant-switch-checked{background:#1c39bb}.filter-modal .ant-modal-content{background:#fff;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.25);overflow:hidden;padding:38px;width:600px}.filter-modal .ant-modal-header{border:none}.filter-modal .ant-modal-title{color:#182233;font-size:25px;font-weight:700;letter-spacing:-.01em;line-height:30px;text-align:center}.filter-modal .ant-modal-body{padding:32px 0 42px;text-align:center}.filter-modal .ant-modal-footer{border:none;padding:0;text-align:center}.filter-modal .ant-modal-footer .ant-btn-default{background:#6b7280;color:#fff}.filter-modal .ant-modal-footer .ant-btn{min-width:110px}.filter-modal .filter-list{-webkit-column-count:2;column-count:2;-webkit-column-gap:100px;column-gap:100px;display:inline-block;margin:0 auto}.filter-modal .filter-item{align-items:center;color:#182233;display:flex;font-size:14px;font-weight:500;justify-content:space-between;letter-spacing:-.01em;line-height:17px;margin-bottom:24px;width:160px}.filter-modal .ant-switch{border-radius:39px;height:17px;line-height:17px}.filter-modal .ant-switch-handle{height:17px;left:0;line-height:17px;top:0}.filter-modal .ant-switch-checked .ant-switch-handle{left:calc(100% - 17px)}.filter-modal .ant-switch-checked .ant-switch-handle:before{background:#d9dde7}.filter-modal .ant-switch-handle:before{background:#1f1f43}.pie-modal{padding-right:200px;position:center}.pie-modal .ant-modal,.pie-modal .ant-modal-title{color:#182233}.pie-modal .ant-modal-content{background:#fff;border-radius:20px;box-shadow:0 5px 20px rgba(0,0,0,.25);overflow:hidden;padding:38px;width:800px}.pie-modal .ant-modal-header{border:none}.pie-modal .ant-modal-title{color:#182233;font-size:25px;font-weight:700;letter-spacing:-.01em;line-height:30px;text-align:center}.pie-modal .ant-modal-body{padding:0 0 42px;text-align:center}.pie-modal .ant-modal-footer{border:none;padding:0;text-align:center}.pie-modal .ant-btn{background:#1c39bb!important;color:#fff;font-size:16px;font-weight:semi-bold;margin:10px}.ant-breadcrumb .current,.ant-breadcrumb a,.ant-breadcrumb-link,.ant-breadcrumb-separator{color:#182233;font-size:14px;font-weight:500;letter-spacing:-.015em;line-height:17px}.ant-breadcrumb .current{color:#1c39bb}.layout-content-wrapper{margin:0 70px}.feedback-modal .ant-modal-content{background:#fff;border-radius:6px;box-shadow:0 4px 10px rgba(0,0,0,.15)}.feedback-modal .anticon{color:#76ca66!important}.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content{color:#7e7e7e;font-size:12px;font-weight:400;letter-spacing:-.01em;line-height:15px}.feedback-modal .ant-modal-body{padding:36px 30px}.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content strong{font-weight:600}.feedback-modal.ant-modal-confirm .ant-modal-confirm-btns{float:none;margin:18px auto 0;text-align:center}.feedback-modal .ant-btn-primary:focus{background:#1c39bb;border-color:#1c39bb}.ant-modal-mask{background:#333!important;opacity:.6!important}.ant-popover-inner{border-radius:6px;text-align:center}.ant-popover-inner .ant-popover-title{border-bottom:.2px solid #9ca3af;color:#7e7e7e;font-size:12px;font-style:normal;font-weight:600;letter-spacing:-.01em;line-height:15px;padding:8px 16px}.ant-popover-inner .ant-popover-inner-content{color:#7e7e7e;font-size:10px;font-style:normal;font-weight:400;letter-spacing:-.01em;line-height:12px}.nodeaddress{display:inline-block;width:85px}.item-to-show{padding:20px 0}.item-to-show .ant-select-selector{border-radius:6px!important}.item-to-show>span{color:#182233;font-size:12px;font-weight:600;letter-spacing:-.015em;line-height:15px;margin-right:20px}.sort-icon.up{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.my-custom-popover .ant-popover-inner{width:1000px}.icon-wrapper{height:13px;margin-right:10px;padding-top:5px;width:13px} +/*# sourceMappingURL=627.9cff874d.chunk.css.map*/ \ No newline at end of file diff --git a/build/static/css/627.9cff874d.chunk.css.map b/build/static/css/627.9cff874d.chunk.css.map new file mode 100644 index 0000000..23ff23b --- /dev/null +++ b/build/static/css/627.9cff874d.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/627.9cff874d.chunk.css","mappings":"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","sources":["containers/A_monitor/styles.css"],"sourcesContent":["#root {\r\n height: 100%;\r\n}\r\n.ant-layout {\r\n min-height: 100%;\r\n min-width: 1920px;\r\n}\r\nbody {\r\n font-family: monospace !important;\r\n font-weight: 200;\r\n}\r\n\r\n.icons-wrapper svg {\r\n color: #7e7e7e;\r\n}\r\n.icons-wrapper svg:hover {\r\n color: #1c39bb;\r\n}\r\n\r\ntd {\r\n border-style: solid;\r\n border-width: 1px;\r\n border-color: rgba(0, 0, 0, 0.07);\r\n}\r\n\r\n.animateGrow {\r\n width: max-content;\r\n background-color: white;\r\n animation-name: animateBlockHeight;\r\n animation-duration: 1s;\r\n}\r\n@keyframes animateBlockHeight {\r\n 0% {\r\n background-color: white;\r\n }\r\n 35% {\r\n background-color: rgba(230, 255, 117, 0.5);\r\n }\r\n 65% {\r\n background-color: rgba(230, 255, 117, 0.5);\r\n }\r\n 100% {\r\n background-color: white;\r\n }\r\n}\r\n\r\n.nodeaddress:hover {\r\n color: #1c39bb;\r\n}\r\n\r\n.tableHeader span {\r\n position: relative;\r\n}\r\n\r\n.tableHeader:hover {\r\n color: #004d59;\r\n}\r\n\r\n.tableHeader span .sort-icon {\r\n position: absolute;\r\n top: 50%;\r\n right: -5px;\r\n}\r\n.tableHeader span .sort-icon.desc {\r\n transform: translate(100%, -50%) rotate(0deg);\r\n}\r\n.tableHeader span .sort-icon.asc {\r\n transform: translate(100%, -50%) rotate(180deg);\r\n}\r\n\r\n.overview-list-wrapper {\r\n border-bottom: 1px solid #1c39bb;\r\n padding-bottom: 28px;\r\n}\r\n.overview-list {\r\n column-count: 6;\r\n background: linear-gradient(269.82deg, #ffffff -20.26%, #ffffff 99.82%);\r\n opacity: 0.8;\r\n border-radius: 10px;\r\n padding: 36px 40px 10px;\r\n filter: drop-shadow(0px 4px 10px rgba(0, 0, 0, 0.1));\r\n max-width: 1880px;\r\n margin: auto;\r\n}\r\n\r\n.overview-item {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 36px;\r\n}\r\n\r\n.overview-item__value {\r\n padding-left: 22px;\r\n}\r\n\r\n.overview-item__value-title {\r\n font-weight: 600;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.015em;\r\n color: #182233;\r\n}\r\n\r\n.overview-item__value-value {\r\n font-style: normal;\r\n font-weight: 600;\r\n font-size: 13px;\r\n line-height: 16px;\r\n letter-spacing: -0.015em;\r\n color: #1b34a0;\r\n}\r\n\r\niframe {\r\n display: none;\r\n}\r\n\r\n.cta-wrapper {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin: 37px 0 16px;\r\n}\r\n\r\n.cta-wrapper .cta-link {\r\n flex: 1;\r\n}\r\n\r\n.hidden {\r\n display: none;\r\n}\r\n\r\n.paging-wrapper {\r\n padding: 25px 0;\r\n color: #9ca3af;\r\n}\r\n\r\n.page-numbers {\r\n display: flex;\r\n justify-content: center;\r\n}\r\n.page-numbers li {\r\n border: 1.5px solid #9ca3af;\r\n cursor: pointer;\r\n font-size: 14px;\r\n padding: 3px 6px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-weight: bold;\r\n}\r\n.page-numbers li.paging-item {\r\n margin-right: 15px;\r\n line-height: 1;\r\n}\r\n\r\n.page-numbers li.paging-item:hover {\r\n color: #182233;\r\n}\r\n\r\n.page-numbers li.active {\r\n border: 1.5px solid #1c39bb;\r\n color: #1c39bb;\r\n}\r\n\r\n.page-numbers .nav-button {\r\n border: none;\r\n cursor: pointer;\r\n}\r\n\r\n.nav-button--prev {\r\n margin-right: 20px;\r\n}\r\n.nav-button--next {\r\n margin-left: 5px;\r\n}\r\n\r\n.nav-button.disabled {\r\n pointer-events: none;\r\n}\r\n\r\n.ant-layout-content {\r\n background-image: url(\"./../../assets/images/overview/liquify_bg.png\"),\r\n url(\"./../../assets/images/overview/hex_map_bg.png\");\r\n background-repeat: no-repeat;\r\n background-position: top 160px center, top calc(960px) center;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 17px 0 0 0 !important;\r\n}\r\n\r\n.loading {\r\n position: relative;\r\n margin: auto auto;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.loading_icon {\r\n animation: spin 1s linear infinite;\r\n width: 203px;\r\n height: 203px;\r\n}\r\n\r\n@keyframes spin {\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n\r\n.ant-layout-footer {\r\n background-color: #fff;\r\n height: 110px;\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n}\r\n\r\n.ant-layout-footer .link {\r\n margin-right: 12px;\r\n cursor: pointer;\r\n}\r\n\r\n.logo-wrapper {\r\n flex: 1;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n transform: translate(-50%, -50%);\r\n font-size: 20px;\r\n color: #182233;\r\n}\r\n.logo-wrapper span {\r\n margin-right: 12px;\r\n}\r\n\r\n.data-table-wrapper {\r\n box-shadow: 0px 4px 10px rgb(0 0 0 / 10%);\r\n position: relative;\r\n z-index: 1;\r\n border-radius: 10px;\r\n}\r\n\r\n.data-table-wrapper::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(90.11deg, #ffffff 1.08%, #eef0fa 100%);\r\n opacity: 0.9;\r\n z-index: -1;\r\n}\r\n.data-table-wrapper tbody {\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 17px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n}\r\n\r\ntable {\r\n border-collapse: separate;\r\n border-spacing: 0;\r\n}\r\n\r\ntd,\r\nth {\r\n border: none;\r\n margin: 0;\r\n}\r\n\r\ntr {\r\n box-shadow: 0px 0px 2px rgb(0 0 0 / 10%);\r\n}\r\n\r\ntr:first-child {\r\n background: none;\r\n margin-top: 2px;\r\n}\r\n\r\n.ant-layout-header {\r\n min-width: unset !important;\r\n}\r\n\r\n.header-left {\r\n flex: 1;\r\n}\r\n.header-left span {\r\n font-family: \"Montserrat\";\r\n font-style: normal;\r\n font-weight: 700;\r\n font-size: 25px;\r\n line-height: 30px;\r\n letter-spacing: -0.015em;\r\n}\r\n.header-right {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 60px;\r\n}\r\n\r\n.header-right .active-node {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 46px;\r\n height: 46px;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n position: relative;\r\n z-index: 1;\r\n overflow: hidden;\r\n}\r\n.header-right .active-node::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(27, 52, 160, 0.8);\r\n filter: blur(7.5px);\r\n z-index: -1;\r\n opacity: 0;\r\n transition: opacity 0.3s ease-in-out;\r\n}\r\n.header-right .active-node:hover::before {\r\n opacity: 1;\r\n}\r\n\r\n.header-right .active-node.active-node--active::before {\r\n content: \"\";\r\n background: #1c39bb;\r\n filter: none;\r\n z-index: -1;\r\n opacity: 1;\r\n}\r\n\r\n.no-data {\r\n height: 400px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.no-data__content {\r\n width: 500px;\r\n height: 180px;\r\n background: #ffffff;\r\n box-shadow: 0px 5px 20px rgb(0 0 0 / 25%);\r\n border-radius: 20px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-weight: 600;\r\n font-size: 20px;\r\n line-height: 32px;\r\n letter-spacing: -0.015em;\r\n}\r\n\r\n.button-filter {\r\n height: auto;\r\n padding: 5px;\r\n background: linear-gradient(90deg, #ffffff 0%, #edeffa 114.85%);\r\n box-shadow: 0px 4px 10px rgb(0 0 0 / 25%);\r\n border-radius: 10px;\r\n margin-left: 40px;\r\n}\r\n\r\n.search-input .anticon-search svg {\r\n width: 24px;\r\n height: 24px;\r\n fill: #c8cace;\r\n}\r\n\r\n.filter-modal .ant-modal,\r\n.filter-modal .ant-modal-title {\r\n color: #182233;\r\n}\r\n\r\n.filter-modal .ant-switch {\r\n background: #d9dde7;\r\n}\r\n.filter-modal .ant-switch-checked {\r\n background: #1c39bb;\r\n}\r\n.filter-modal .ant-modal-content {\r\n width: 600px;\r\n background: #ffffff;\r\n box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.25);\r\n border-radius: 20px;\r\n overflow: hidden;\r\n padding: 38px;\r\n}\r\n.filter-modal .ant-modal-header {\r\n border: none;\r\n}\r\n.filter-modal .ant-modal-title {\r\n font-weight: 700;\r\n font-size: 25px;\r\n line-height: 30px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n text-align: center;\r\n}\r\n.filter-modal .ant-modal-body {\r\n text-align: center;\r\n padding: 32px 0 42px;\r\n}\r\n.filter-modal .ant-modal-footer {\r\n border: none;\r\n text-align: center;\r\n padding: 0;\r\n}\r\n.filter-modal .ant-modal-footer .ant-btn-default {\r\n background: #6b7280;\r\n color: #fff;\r\n}\r\n.filter-modal .ant-modal-footer .ant-btn {\r\n min-width: 110px;\r\n}\r\n.filter-modal .filter-list {\r\n column-count: 2;\r\n display: inline-block;\r\n margin: 0 auto;\r\n column-gap: 100px;\r\n}\r\n\r\n.filter-modal .filter-item {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 160px;\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 17px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n margin-bottom: 24px;\r\n}\r\n.filter-modal .ant-switch {\r\n height: 17px;\r\n line-height: 17px;\r\n border-radius: 39px;\r\n}\r\n.filter-modal .ant-switch-handle {\r\n height: 17px;\r\n line-height: 17px;\r\n top: 0;\r\n left: 0;\r\n}\r\n.filter-modal .ant-switch-checked .ant-switch-handle {\r\n left: calc(100% - 17px - 0px);\r\n}\r\n.filter-modal .ant-switch-checked .ant-switch-handle::before {\r\n background: #d9dde7;\r\n}\r\n.filter-modal .ant-switch-handle::before {\r\n background: #1f1f43;\r\n}\r\n\r\n/* .filter-modal .custom-pie-chart {\r\n width: 650px;\r\n height: 100%;\r\n margin: 0 auto;\r\n}\r\n\r\n.filter-modal .custom-pie-chart canvas {\r\n width: 100% !important;\r\n height: 100% !important;\r\n} */\r\n\r\n.pie-modal {\r\n position: center;\r\n padding-right: 200px;\r\n}\r\n\r\n.pie-modal .ant-modal,\r\n.pie-modal .ant-modal-title {\r\n color: #182233;\r\n}\r\n\r\n.pie-modal .ant-modal-content {\r\n width: 800px;\r\n background: #ffffff;\r\n box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.25);\r\n border-radius: 20px;\r\n overflow: hidden;\r\n padding: 38px;\r\n}\r\n.pie-modal .ant-modal-header {\r\n border: none;\r\n}\r\n.pie-modal .ant-modal-title {\r\n font-weight: 700;\r\n font-size: 25px;\r\n line-height: 30px;\r\n letter-spacing: -0.01em;\r\n color: #182233;\r\n text-align: center;\r\n}\r\n.pie-modal .ant-modal-body {\r\n text-align: center;\r\n padding: 0 0 42px;\r\n}\r\n.pie-modal .ant-modal-footer {\r\n border: none;\r\n text-align: center;\r\n padding: 0;\r\n}\r\n\r\n.pie-modal .ant-btn {\r\n background: #1c39bb !important;\r\n color: white;\r\n font-size: 16px;\r\n font-weight: semi-bold;\r\n margin: 10px;\r\n}\r\n\r\n.ant-breadcrumb a,\r\n.ant-breadcrumb .current,\r\n.ant-breadcrumb-link,\r\n.ant-breadcrumb-separator {\r\n font-weight: 500;\r\n font-size: 14px;\r\n line-height: 17px;\r\n letter-spacing: -0.015em;\r\n color: #182233;\r\n}\r\n\r\n.ant-breadcrumb .current {\r\n color: #1c39bb;\r\n}\r\n\r\n.layout-content-wrapper {\r\n margin: 0 70px;\r\n}\r\n\r\n.feedback-modal .ant-modal-content {\r\n background: #ffffff;\r\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.15);\r\n border-radius: 6px;\r\n}\r\n.feedback-modal .anticon {\r\n color: #76ca66 !important;\r\n}\r\n.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content {\r\n font-weight: 400;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.01em;\r\n color: #7e7e7e;\r\n}\r\n.feedback-modal .ant-modal-body {\r\n padding: 36px 30px;\r\n}\r\n.feedback-modal .ant-modal-confirm-body .ant-modal-confirm-content strong {\r\n font-weight: 600;\r\n}\r\n.feedback-modal.ant-modal-confirm .ant-modal-confirm-btns {\r\n margin: 18px auto 0;\r\n text-align: center;\r\n float: none;\r\n}\r\n.feedback-modal .ant-btn-primary:focus {\r\n background: #1c39bb;\r\n border-color: #1c39bb;\r\n}\r\n\r\n.ant-modal-mask {\r\n background: #333333 !important;\r\n opacity: 0.6 !important;\r\n}\r\n\r\n.ant-popover-inner {\r\n border-radius: 6px;\r\n text-align: center;\r\n}\r\n.ant-popover-inner .ant-popover-title {\r\n font-style: normal;\r\n font-weight: 600;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.01em;\r\n color: #7e7e7e;\r\n padding: 8px 16px;\r\n border-bottom: 0.2px solid #9ca3af;\r\n}\r\n.ant-popover-inner .ant-popover-inner-content {\r\n font-style: normal;\r\n font-weight: 400;\r\n font-size: 10px;\r\n line-height: 12px;\r\n letter-spacing: -0.01em;\r\n color: #7e7e7e;\r\n}\r\n\r\n.nodeaddress {\r\n display: inline-block;\r\n width: 85px;\r\n}\r\n\r\n.item-to-show {\r\n padding: 20px 0;\r\n}\r\n.item-to-show .ant-select-selector {\r\n border-radius: 6px !important;\r\n}\r\n\r\n.item-to-show > span {\r\n font-weight: 600;\r\n font-size: 12px;\r\n line-height: 15px;\r\n letter-spacing: -0.015em;\r\n color: #182233;\r\n margin-right: 20px;\r\n}\r\n\r\n.sort-icon.up {\r\n transform: rotate(180deg);\r\n}\r\n\r\n.my-custom-popover .ant-popover-inner {\r\n width: 1000px;\r\n}\r\n\r\n.icon-wrapper {\r\n width: 13px;\r\n height: 13px;\r\n padding-top: 5px;\r\n margin-right: 10px;\r\n}\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/css/main.43eaeb58.css b/build/static/css/main.43eaeb58.css new file mode 100644 index 0000000..750353e --- /dev/null +++ b/build/static/css/main.43eaeb58.css @@ -0,0 +1,2 @@ +[class*=ant-] input::-ms-clear,[class*=ant-] input::-ms-reveal,[class*=ant-]::-ms-clear,[class^=ant-] input::-ms-clear,[class^=ant-] input::-ms-reveal,[class^=ant-]::-ms-clear{display:none}body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:sans-serif;line-height:1.15}@-ms-viewport{width:device-width}body{font-feature-settings:"tnum","tnum";background-color:#fff;color:rgba(0,0,0,.85);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:14px;font-variant:tabular-nums;line-height:1.5715;margin:0}[tabindex="-1"]:focus{outline:none!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{color:rgba(0,0,0,.85);font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{-webkit-text-decoration-skip:objects;background-color:initial;color:#1890ff;cursor:pointer;outline:none;text-decoration:none;transition:color .3s}a:hover{color:#40a9ff}a:active{color:#096dd9}a:active,a:focus,a:hover{outline:0;text-decoration:none}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;color:rgba(0,0,0,.45);padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}::-moz-selection{background:#1890ff;color:#fff}::selection{background:#1890ff;color:#fff}.clearfix:after,.clearfix:before{content:"";display:table}.clearfix:after{clear:both}.anticon{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;align-items:center;color:inherit;display:inline-flex;font-style:normal;line-height:0;text-align:center;text-rendering:optimizelegibility;text-transform:none;vertical-align:-.125em}.anticon>*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon>.anticon{line-height:0;vertical-align:0}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin:before{animation:loadingCircle 1s linear infinite;display:inline-block}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-fade-appear.ant-fade-appear-active,.ant-fade-enter.ant-fade-enter-active{animation-name:antFadeIn;animation-play-state:running}.ant-fade-leave.ant-fade-leave-active{animation-name:antFadeOut;animation-play-state:running;pointer-events:none}.ant-fade-appear,.ant-fade-enter{animation-timing-function:linear;opacity:0}.ant-fade-leave{animation-timing-function:linear}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.ant-move-up-appear,.ant-move-up-enter,.ant-move-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-up-appear.ant-move-up-appear-active,.ant-move-up-enter.ant-move-up-enter-active{animation-name:antMoveUpIn;animation-play-state:running}.ant-move-up-leave.ant-move-up-leave-active{animation-name:antMoveUpOut;animation-play-state:running;pointer-events:none}.ant-move-up-appear,.ant-move-up-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-up-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-down-appear,.ant-move-down-enter,.ant-move-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-down-appear.ant-move-down-appear-active,.ant-move-down-enter.ant-move-down-enter-active{animation-name:antMoveDownIn;animation-play-state:running}.ant-move-down-leave.ant-move-down-leave-active{animation-name:antMoveDownOut;animation-play-state:running;pointer-events:none}.ant-move-down-appear,.ant-move-down-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-down-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-left-appear,.ant-move-left-enter,.ant-move-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-left-appear.ant-move-left-appear-active,.ant-move-left-enter.ant-move-left-enter-active{animation-name:antMoveLeftIn;animation-play-state:running}.ant-move-left-leave.ant-move-left-leave-active{animation-name:antMoveLeftOut;animation-play-state:running;pointer-events:none}.ant-move-left-appear,.ant-move-left-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-left-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-right-appear,.ant-move-right-enter,.ant-move-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-right-appear.ant-move-right-appear-active,.ant-move-right-enter.ant-move-right-enter-active{animation-name:antMoveRightIn;animation-play-state:running}.ant-move-right-leave.ant-move-right-leave-active{animation-name:antMoveRightOut;animation-play-state:running;pointer-events:none}.ant-move-right-appear,.ant-move-right-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-right-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@keyframes antMoveDownIn{0%{opacity:0;transform:translateY(100%);transform-origin:0 0}to{opacity:1;transform:translateY(0);transform-origin:0 0}}@keyframes antMoveDownOut{0%{opacity:1;transform:translateY(0);transform-origin:0 0}to{opacity:0;transform:translateY(100%);transform-origin:0 0}}@keyframes antMoveLeftIn{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes antMoveLeftOut{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}@keyframes antMoveRightIn{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes antMoveRightOut{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@keyframes antMoveUpIn{0%{opacity:0;transform:translateY(-100%);transform-origin:0 0}to{opacity:1;transform:translateY(0);transform-origin:0 0}}@keyframes antMoveUpOut{0%{opacity:1;transform:translateY(0);transform-origin:0 0}to{opacity:0;transform:translateY(-100%);transform-origin:0 0}}@keyframes loadingCircle{to{transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:#1890ff;--scroll-bar:0}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation-fill-mode:forwards;border-radius:inherit;bottom:0;box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 var(--antd-wave-shadow-color);content:"";display:block;left:0;opacity:.2;pointer-events:none;position:absolute;right:0;top:0}@keyframes waveEffect{to{box-shadow:0 0 0 #1890ff;box-shadow:0 0 0 6px #1890ff;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes fadeEffect{to{opacity:0}}.ant-slide-up-appear,.ant-slide-up-enter,.ant-slide-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-up-appear.ant-slide-up-appear-active,.ant-slide-up-enter.ant-slide-up-enter-active{animation-name:antSlideUpIn;animation-play-state:running}.ant-slide-up-leave.ant-slide-up-leave-active{animation-name:antSlideUpOut;animation-play-state:running;pointer-events:none}.ant-slide-up-appear,.ant-slide-up-enter{animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0;transform:scale(0);transform-origin:0 0}.ant-slide-up-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-down-appear,.ant-slide-down-enter,.ant-slide-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-down-appear.ant-slide-down-appear-active,.ant-slide-down-enter.ant-slide-down-enter-active{animation-name:antSlideDownIn;animation-play-state:running}.ant-slide-down-leave.ant-slide-down-leave-active{animation-name:antSlideDownOut;animation-play-state:running;pointer-events:none}.ant-slide-down-appear,.ant-slide-down-enter{animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0;transform:scale(0);transform-origin:0 0}.ant-slide-down-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-left-appear,.ant-slide-left-enter,.ant-slide-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-left-appear.ant-slide-left-appear-active,.ant-slide-left-enter.ant-slide-left-enter-active{animation-name:antSlideLeftIn;animation-play-state:running}.ant-slide-left-leave.ant-slide-left-leave-active{animation-name:antSlideLeftOut;animation-play-state:running;pointer-events:none}.ant-slide-left-appear,.ant-slide-left-enter{animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0;transform:scale(0);transform-origin:0 0}.ant-slide-left-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-right-appear,.ant-slide-right-enter,.ant-slide-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-right-appear.ant-slide-right-appear-active,.ant-slide-right-enter.ant-slide-right-enter-active{animation-name:antSlideRightIn;animation-play-state:running}.ant-slide-right-leave.ant-slide-right-leave-active{animation-name:antSlideRightOut;animation-play-state:running;pointer-events:none}.ant-slide-right-appear,.ant-slide-right-enter{animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0;transform:scale(0);transform-origin:0 0}.ant-slide-right-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@keyframes antSlideUpIn{0%{opacity:0;transform:scaleY(.8);transform-origin:0 0}to{opacity:1;transform:scaleY(1);transform-origin:0 0}}@keyframes antSlideUpOut{0%{opacity:1;transform:scaleY(1);transform-origin:0 0}to{opacity:0;transform:scaleY(.8);transform-origin:0 0}}@keyframes antSlideDownIn{0%{opacity:0;transform:scaleY(.8);transform-origin:100% 100%}to{opacity:1;transform:scaleY(1);transform-origin:100% 100%}}@keyframes antSlideDownOut{0%{opacity:1;transform:scaleY(1);transform-origin:100% 100%}to{opacity:0;transform:scaleY(.8);transform-origin:100% 100%}}@keyframes antSlideLeftIn{0%{opacity:0;transform:scaleX(.8);transform-origin:0 0}to{opacity:1;transform:scaleX(1);transform-origin:0 0}}@keyframes antSlideLeftOut{0%{opacity:1;transform:scaleX(1);transform-origin:0 0}to{opacity:0;transform:scaleX(.8);transform-origin:0 0}}@keyframes antSlideRightIn{0%{opacity:0;transform:scaleX(.8);transform-origin:100% 0}to{opacity:1;transform:scaleX(1);transform-origin:100% 0}}@keyframes antSlideRightOut{0%{opacity:1;transform:scaleX(1);transform-origin:100% 0}to{opacity:0;transform:scaleX(.8);transform-origin:100% 0}}.ant-zoom-appear,.ant-zoom-enter,.ant-zoom-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-appear.ant-zoom-appear-active,.ant-zoom-enter.ant-zoom-enter-active{animation-name:antZoomIn;animation-play-state:running}.ant-zoom-leave.ant-zoom-leave-active{animation-name:antZoomOut;animation-play-state:running;pointer-events:none}.ant-zoom-appear,.ant-zoom-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-appear-prepare,.ant-zoom-enter-prepare{transform:none}.ant-zoom-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-appear,.ant-zoom-big-enter,.ant-zoom-big-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-big-appear.ant-zoom-big-appear-active,.ant-zoom-big-enter.ant-zoom-big-enter-active{animation-name:antZoomBigIn;animation-play-state:running}.ant-zoom-big-leave.ant-zoom-big-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none}.ant-zoom-big-appear,.ant-zoom-big-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-big-appear-prepare,.ant-zoom-big-enter-prepare{transform:none}.ant-zoom-big-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter,.ant-zoom-big-fast-leave{animation-duration:.1s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active,.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active{animation-name:antZoomBigIn;animation-play-state:running}.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-big-fast-appear-prepare,.ant-zoom-big-fast-enter-prepare{transform:none}.ant-zoom-big-fast-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-up-appear,.ant-zoom-up-enter,.ant-zoom-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-up-appear.ant-zoom-up-appear-active,.ant-zoom-up-enter.ant-zoom-up-enter-active{animation-name:antZoomUpIn;animation-play-state:running}.ant-zoom-up-leave.ant-zoom-up-leave-active{animation-name:antZoomUpOut;animation-play-state:running;pointer-events:none}.ant-zoom-up-appear,.ant-zoom-up-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-up-appear-prepare,.ant-zoom-up-enter-prepare{transform:none}.ant-zoom-up-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-down-appear,.ant-zoom-down-enter,.ant-zoom-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-down-appear.ant-zoom-down-appear-active,.ant-zoom-down-enter.ant-zoom-down-enter-active{animation-name:antZoomDownIn;animation-play-state:running}.ant-zoom-down-leave.ant-zoom-down-leave-active{animation-name:antZoomDownOut;animation-play-state:running;pointer-events:none}.ant-zoom-down-appear,.ant-zoom-down-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-down-appear-prepare,.ant-zoom-down-enter-prepare{transform:none}.ant-zoom-down-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-left-appear,.ant-zoom-left-enter,.ant-zoom-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-left-appear.ant-zoom-left-appear-active,.ant-zoom-left-enter.ant-zoom-left-enter-active{animation-name:antZoomLeftIn;animation-play-state:running}.ant-zoom-left-leave.ant-zoom-left-leave-active{animation-name:antZoomLeftOut;animation-play-state:running;pointer-events:none}.ant-zoom-left-appear,.ant-zoom-left-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-left-appear-prepare,.ant-zoom-left-enter-prepare{transform:none}.ant-zoom-left-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-right-appear,.ant-zoom-right-enter,.ant-zoom-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-right-appear.ant-zoom-right-appear-active,.ant-zoom-right-enter.ant-zoom-right-enter-active{animation-name:antZoomRightIn;animation-play-state:running}.ant-zoom-right-leave.ant-zoom-right-leave-active{animation-name:antZoomRightOut;animation-play-state:running;pointer-events:none}.ant-zoom-right-appear,.ant-zoom-right-enter{animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-right-appear-prepare,.ant-zoom-right-enter-prepare{transform:none}.ant-zoom-right-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@keyframes antZoomIn{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes antZoomOut{0%{transform:scale(1)}to{opacity:0;transform:scale(.2)}}@keyframes antZoomBigIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes antZoomBigOut{0%{transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes antZoomUpIn{0%{opacity:0;transform:scale(.8);transform-origin:50% 0}to{transform:scale(1);transform-origin:50% 0}}@keyframes antZoomUpOut{0%{transform:scale(1);transform-origin:50% 0}to{opacity:0;transform:scale(.8);transform-origin:50% 0}}@keyframes antZoomLeftIn{0%{opacity:0;transform:scale(.8);transform-origin:0 50%}to{transform:scale(1);transform-origin:0 50%}}@keyframes antZoomLeftOut{0%{transform:scale(1);transform-origin:0 50%}to{opacity:0;transform:scale(.8);transform-origin:0 50%}}@keyframes antZoomRightIn{0%{opacity:0;transform:scale(.8);transform-origin:100% 50%}to{transform:scale(1);transform-origin:100% 50%}}@keyframes antZoomRightOut{0%{transform:scale(1);transform-origin:100% 50%}to{opacity:0;transform:scale(.8);transform-origin:100% 50%}}@keyframes antZoomDownIn{0%{opacity:0;transform:scale(.8);transform-origin:50% 100%}to{transform:scale(1);transform-origin:50% 100%}}@keyframes antZoomDownOut{0%{transform:scale(1);transform-origin:50% 100%}to{opacity:0;transform:scale(.8);transform-origin:50% 100%}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse,.ant-motion-collapse-legacy-active{transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden}.ant-btn{background-image:none;background:#fff;border:1px solid #d9d9d9;border-radius:2px;box-shadow:0 2px 0 rgba(0,0,0,.015);color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;font-weight:400;height:32px;line-height:1.5715;padding:4px 15px;position:relative;text-align:center;touch-action:manipulation;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.ant-btn>.anticon{line-height:1}.ant-btn,.ant-btn:active,.ant-btn:focus{outline:0}.ant-btn:not([disabled]):hover{text-decoration:none}.ant-btn:not([disabled]):active{box-shadow:none;outline:0}.ant-btn[disabled]{cursor:not-allowed}.ant-btn[disabled]>*{pointer-events:none}.ant-btn-lg{border-radius:2px;font-size:16px;height:40px;padding:6.4px 15px}.ant-btn-sm{border-radius:2px;font-size:14px;height:24px;padding:0 7px}.ant-btn>a:only-child{color:currentcolor}.ant-btn>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn:focus,.ant-btn:hover{background:#fff;border-color:#40a9ff;color:#40a9ff}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentcolor}.ant-btn:focus>a:only-child:after,.ant-btn:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn:active{background:#fff;border-color:#096dd9;color:#096dd9}.ant-btn:active>a:only-child{color:currentcolor}.ant-btn:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn[disabled],.ant-btn[disabled]:active,.ant-btn[disabled]:focus,.ant-btn[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn[disabled]:active>a:only-child,.ant-btn[disabled]:focus>a:only-child,.ant-btn[disabled]:hover>a:only-child,.ant-btn[disabled]>a:only-child{color:currentcolor}.ant-btn[disabled]:active>a:only-child:after,.ant-btn[disabled]:focus>a:only-child:after,.ant-btn[disabled]:hover>a:only-child:after,.ant-btn[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn:active,.ant-btn:focus,.ant-btn:hover{background:#fff;text-decoration:none}.ant-btn>span{display:inline-block}.ant-btn-primary{background:#1890ff;border-color:#1890ff;box-shadow:0 2px 0 rgba(0,0,0,.045);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.12)}.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-primary>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-primary:focus,.ant-btn-primary:hover{background:#40a9ff;border-color:#40a9ff;color:#fff}.ant-btn-primary:focus>a:only-child,.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-primary:focus>a:only-child:after,.ant-btn-primary:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-primary:active{background:#096dd9;border-color:#096dd9;color:#fff}.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-primary:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-primary[disabled],.ant-btn-primary[disabled]:active,.ant-btn-primary[disabled]:focus,.ant-btn-primary[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-primary[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-left-color:#40a9ff;border-right-color:#40a9ff}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{background:transparent;border-color:#d9d9d9;color:rgba(0,0,0,.85)}.ant-btn-ghost>a:only-child{color:currentcolor}.ant-btn-ghost>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-ghost:focus,.ant-btn-ghost:hover{background:transparent;border-color:#40a9ff;color:#40a9ff}.ant-btn-ghost:focus>a:only-child,.ant-btn-ghost:hover>a:only-child{color:currentcolor}.ant-btn-ghost:focus>a:only-child:after,.ant-btn-ghost:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-ghost:active{background:transparent;border-color:#096dd9;color:#096dd9}.ant-btn-ghost:active>a:only-child{color:currentcolor}.ant-btn-ghost:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-ghost[disabled],.ant-btn-ghost[disabled]:active,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-ghost[disabled]:active>a:only-child,.ant-btn-ghost[disabled]:focus>a:only-child,.ant-btn-ghost[disabled]:hover>a:only-child,.ant-btn-ghost[disabled]>a:only-child{color:currentcolor}.ant-btn-ghost[disabled]:active>a:only-child:after,.ant-btn-ghost[disabled]:focus>a:only-child:after,.ant-btn-ghost[disabled]:hover>a:only-child:after,.ant-btn-ghost[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed{background:#fff;border-color:#d9d9d9;border-style:dashed;color:rgba(0,0,0,.85)}.ant-btn-dashed>a:only-child{color:currentcolor}.ant-btn-dashed>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed:focus,.ant-btn-dashed:hover{background:#fff;border-color:#40a9ff;color:#40a9ff}.ant-btn-dashed:focus>a:only-child,.ant-btn-dashed:hover>a:only-child{color:currentcolor}.ant-btn-dashed:focus>a:only-child:after,.ant-btn-dashed:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed:active{background:#fff;border-color:#096dd9;color:#096dd9}.ant-btn-dashed:active>a:only-child{color:currentcolor}.ant-btn-dashed:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed[disabled],.ant-btn-dashed[disabled]:active,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dashed[disabled]:active>a:only-child,.ant-btn-dashed[disabled]:focus>a:only-child,.ant-btn-dashed[disabled]:hover>a:only-child,.ant-btn-dashed[disabled]>a:only-child{color:currentcolor}.ant-btn-dashed[disabled]:active>a:only-child:after,.ant-btn-dashed[disabled]:focus>a:only-child:after,.ant-btn-dashed[disabled]:hover>a:only-child:after,.ant-btn-dashed[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger{background:#ff4d4f;border-color:#ff4d4f;box-shadow:0 2px 0 rgba(0,0,0,.045);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.12)}.ant-btn-danger>a:only-child{color:currentcolor}.ant-btn-danger>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger:focus,.ant-btn-danger:hover{background:#ff7875;border-color:#ff7875;color:#fff}.ant-btn-danger:focus>a:only-child,.ant-btn-danger:hover>a:only-child{color:currentcolor}.ant-btn-danger:focus>a:only-child:after,.ant-btn-danger:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger:active{background:#d9363e;border-color:#d9363e;color:#fff}.ant-btn-danger:active>a:only-child{color:currentcolor}.ant-btn-danger:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger[disabled],.ant-btn-danger[disabled]:active,.ant-btn-danger[disabled]:focus,.ant-btn-danger[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-danger[disabled]>a:only-child{color:currentcolor}.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-danger[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link{background:transparent;border-color:transparent;box-shadow:none;color:#1890ff}.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-link>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link:focus,.ant-btn-link:hover{background:transparent;border-color:#40a9ff;color:#40a9ff}.ant-btn-link:focus>a:only-child,.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-link:focus>a:only-child:after,.ant-btn-link:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link:active{background:transparent;border-color:#096dd9;color:#096dd9}.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-link:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-link:hover{background:transparent}.ant-btn-link:active,.ant-btn-link:focus,.ant-btn-link:hover{border-color:transparent}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-link[disabled]:active>a:only-child,.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-link[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.85)}.ant-btn-text>a:only-child{color:currentcolor}.ant-btn-text>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text:focus,.ant-btn-text:hover{background:transparent;border-color:#40a9ff;color:#40a9ff}.ant-btn-text:focus>a:only-child,.ant-btn-text:hover>a:only-child{color:currentcolor}.ant-btn-text:focus>a:only-child:after,.ant-btn-text:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text:active{background:transparent;border-color:#096dd9;color:#096dd9}.ant-btn-text:active>a:only-child{color:currentcolor}.ant-btn-text:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-text:focus,.ant-btn-text:hover{background:rgba(0,0,0,.018);border-color:transparent;color:rgba(0,0,0,.85)}.ant-btn-text:active{background:rgba(0,0,0,.028);border-color:transparent;color:rgba(0,0,0,.85)}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-text[disabled]:active>a:only-child,.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-text[disabled]>a:only-child{color:currentcolor}.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-text[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous{background:#fff;border-color:#ff4d4f;color:#ff4d4f}.ant-btn-dangerous>a:only-child{color:currentcolor}.ant-btn-dangerous>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous:focus,.ant-btn-dangerous:hover{background:#fff;border-color:#ff7875;color:#ff7875}.ant-btn-dangerous:focus>a:only-child,.ant-btn-dangerous:hover>a:only-child{color:currentcolor}.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-dangerous:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous:active{background:#fff;border-color:#d9363e;color:#d9363e}.ant-btn-dangerous:active>a:only-child{color:currentcolor}.ant-btn-dangerous:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous[disabled],.ant-btn-dangerous[disabled]:active,.ant-btn-dangerous[disabled]:focus,.ant-btn-dangerous[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-dangerous[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-dangerous[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary{background:#ff4d4f;border-color:#ff4d4f;box-shadow:0 2px 0 rgba(0,0,0,.045);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.12)}.ant-btn-dangerous.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary:focus,.ant-btn-dangerous.ant-btn-primary:hover{background:#ff7875;border-color:#ff7875;color:#fff}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary:active{background:#d9363e;border-color:#d9363e;color:#fff}.ant-btn-dangerous.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary[disabled],.ant-btn-dangerous.ant-btn-primary[disabled]:active,.ant-btn-dangerous.ant-btn-primary[disabled]:focus,.ant-btn-dangerous.ant-btn-primary[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link{background:transparent;border-color:transparent;box-shadow:none;color:#ff4d4f}.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{border-color:#40a9ff;color:#40a9ff}.ant-btn-dangerous.ant-btn-link:active{border-color:#096dd9;color:#096dd9}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{background:transparent;border-color:transparent;color:#ff7875}.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link:active{background:transparent;border-color:transparent;color:#d9363e}.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text{background:transparent;border-color:transparent;box-shadow:none;color:#ff4d4f}.ant-btn-dangerous.ant-btn-text>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{background:transparent;border-color:#40a9ff;color:#40a9ff}.ant-btn-dangerous.ant-btn-text:active{background:transparent;border-color:#096dd9;color:#096dd9}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{background:rgba(0,0,0,.018);border-color:transparent;color:#ff7875}.ant-btn-dangerous.ant-btn-text:focus>a:only-child,.ant-btn-dangerous.ant-btn-text:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text:active{background:rgba(0,0,0,.028);border-color:transparent;color:#d9363e}.ant-btn-dangerous.ant-btn-text:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-icon-only{border-radius:2px;font-size:16px;height:32px;padding:2.4px 0;vertical-align:-3px;width:32px}.ant-btn-icon-only>*{font-size:16px}.ant-btn-icon-only.ant-btn-lg{border-radius:2px;font-size:18px;height:40px;padding:4.9px 0;width:40px}.ant-btn-icon-only.ant-btn-lg>*{font-size:18px}.ant-btn-icon-only.ant-btn-sm{border-radius:2px;font-size:14px;height:24px;padding:0;width:24px}.ant-btn-icon-only.ant-btn-sm>*{font-size:14px}.ant-btn-icon-only>.anticon{display:flex;justify-content:center}.ant-btn-icon-only .anticon-loading{padding:0!important}a.ant-btn-icon-only{vertical-align:-1px}a.ant-btn-icon-only>.anticon{display:inline}.ant-btn-round{border-radius:32px;font-size:14px;height:32px;padding:4px 16px}.ant-btn-round.ant-btn-lg{border-radius:40px;font-size:16px;height:40px;padding:6.4px 20px}.ant-btn-round.ant-btn-sm{border-radius:24px;font-size:14px;height:24px;padding:0 12px}.ant-btn-round.ant-btn-icon-only{width:auto}.ant-btn-circle{border-radius:50%;min-width:32px;padding-left:0;padding-right:0;text-align:center}.ant-btn-circle.ant-btn-lg{border-radius:50%;min-width:40px}.ant-btn-circle.ant-btn-sm{border-radius:50%;min-width:24px}.ant-btn:before{background:#fff;border-radius:inherit;bottom:-1px;content:"";display:none;left:-1px;opacity:.35;pointer-events:none;position:absolute;right:-1px;top:-1px;transition:opacity .2s;z-index:1}.ant-btn .anticon{transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn .anticon.anticon-minus>svg,.ant-btn .anticon.anticon-plus>svg{shape-rendering:optimizespeed}.ant-btn.ant-btn-loading{cursor:default;position:relative}.ant-btn.ant-btn-loading:before{display:block}.ant-btn>.ant-btn-loading-icon{transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1)}.ant-btn>.ant-btn-loading-icon .anticon{animation:none;padding-right:8px}.ant-btn>.ant-btn-loading-icon .anticon svg{animation:loadingCircle 1s linear infinite}.ant-btn-group{display:inline-flex}.ant-btn-group,.ant-btn-group>.ant-btn,.ant-btn-group>span>.ant-btn{position:relative}.ant-btn-group>.ant-btn:active,.ant-btn-group>.ant-btn:focus,.ant-btn-group>.ant-btn:hover,.ant-btn-group>span>.ant-btn:active,.ant-btn-group>span>.ant-btn:focus,.ant-btn-group>span>.ant-btn:hover{z-index:2}.ant-btn-group>.ant-btn[disabled],.ant-btn-group>span>.ant-btn[disabled]{z-index:0}.ant-btn-group .ant-btn-icon-only{font-size:14px}.ant-btn+.ant-btn-group,.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group .ant-btn+span,.ant-btn-group span+.ant-btn,.ant-btn-group+.ant-btn,.ant-btn-group+.ant-btn-group,.ant-btn-group>span+span{margin-left:-1px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:first-child,.ant-btn-group>span:first-child>.ant-btn{margin-left:0}.ant-btn-group>.ant-btn:only-child,.ant-btn-group>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-bottom-right-radius:2px;border-top-right-radius:2px}.ant-btn-group-sm>.ant-btn:only-child,.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-bottom-right-radius:2px;border-top-right-radius:2px}.ant-btn-group>.ant-btn-group{float:left}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{border-bottom-right-radius:0;border-top-right-radius:0;padding-right:8px}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0;padding-left:8px}.ant-btn-group-rtl.ant-btn+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group-rtl.ant-btn-group .ant-btn+span,.ant-btn-group-rtl.ant-btn-group span+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group>span+span,.ant-btn-rtl.ant-btn+.ant-btn-group,.ant-btn-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-rtl.ant-btn-group .ant-btn+span,.ant-btn-rtl.ant-btn-group span+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn-group,.ant-btn-rtl.ant-btn-group>span+span{margin-left:auto;margin-right:-1px}.ant-btn-group.ant-btn-group-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-radius:0 2px 2px 0}.ant-btn-group-rtl.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-radius:2px 0 0 2px}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-radius:0 2px 2px 0}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-radius:2px 0 0 2px}.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:8px}.ant-btn.ant-btn-background-ghost{border-color:#fff;color:#fff}.ant-btn.ant-btn-background-ghost,.ant-btn.ant-btn-background-ghost:active,.ant-btn.ant-btn-background-ghost:focus,.ant-btn.ant-btn-background-ghost:hover{background:transparent}.ant-btn.ant-btn-background-ghost:focus,.ant-btn.ant-btn-background-ghost:hover{border-color:#40a9ff;color:#40a9ff}.ant-btn.ant-btn-background-ghost:active{border-color:#096dd9;color:#096dd9}.ant-btn.ant-btn-background-ghost[disabled]{background:transparent;border-color:#d9d9d9;color:rgba(0,0,0,.25)}.ant-btn-background-ghost.ant-btn-primary{border-color:#1890ff;color:#1890ff;text-shadow:none}.ant-btn-background-ghost.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{border-color:#40a9ff;color:#40a9ff}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-primary:active{border-color:#096dd9;color:#096dd9}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger{border-color:#ff4d4f;color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-danger>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger:focus,.ant-btn-background-ghost.ant-btn-danger:hover{border-color:#ff7875;color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger:active{border-color:#d9363e;color:#d9363e}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous{border-color:#ff4d4f;color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous:focus,.ant-btn-background-ghost.ant-btn-dangerous:hover{border-color:#ff7875;color:#ff7875}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous:active{border-color:#d9363e;color:#d9363e}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous[disabled],.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link{border-color:transparent;color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover{border-color:transparent;color:#ff7875}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active{border-color:transparent;color:#d9363e}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-two-chinese-chars:first-letter{letter-spacing:.34em}.ant-btn-two-chinese-chars>:not(.anticon){letter-spacing:.34em;margin-right:-.34em}.ant-btn.ant-btn-block{width:100%}.ant-btn:empty{content:"\a0";display:inline-block;visibility:hidden;width:0}a.ant-btn{line-height:30px;padding-top:.01px!important}a.ant-btn-disabled{cursor:not-allowed}a.ant-btn-disabled>*{pointer-events:none}a.ant-btn-disabled,a.ant-btn-disabled:active,a.ant-btn-disabled:focus,a.ant-btn-disabled:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}a.ant-btn-disabled:active>a:only-child,a.ant-btn-disabled:focus>a:only-child,a.ant-btn-disabled:hover>a:only-child,a.ant-btn-disabled>a:only-child{color:currentcolor}a.ant-btn-disabled:active>a:only-child:after,a.ant-btn-disabled:focus>a:only-child:after,a.ant-btn-disabled:hover>a:only-child:after,a.ant-btn-disabled>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-btn-compact-item:not(.ant-btn-compact-last-item):not(.ant-btn-compact-item-rtl){margin-right:-1px}.ant-btn-compact-item:not(.ant-btn-compact-last-item).ant-btn-compact-item-rtl{margin-left:-1px}.ant-btn-compact-item:active,.ant-btn-compact-item:focus,.ant-btn-compact-item:hover{z-index:2}.ant-btn-compact-item[disabled]{z-index:0}.ant-btn-compact-item:not(.ant-btn-compact-first-item):not(.ant-btn-compact-last-item).ant-btn{border-radius:0}.ant-btn-compact-item.ant-btn.ant-btn-compact-first-item:not(.ant-btn-compact-last-item):not(.ant-btn-compact-item-rtl){border-bottom-right-radius:0;border-top-right-radius:0}.ant-btn-compact-item.ant-btn.ant-btn-compact-item-rtl.ant-btn-compact-first-item:not(.ant-btn-compact-last-item),.ant-btn-compact-item.ant-btn.ant-btn-compact-last-item:not(.ant-btn-compact-first-item):not(.ant-btn-compact-item-rtl){border-bottom-left-radius:0;border-top-left-radius:0}.ant-btn-compact-item.ant-btn.ant-btn-compact-item-rtl.ant-btn-compact-last-item:not(.ant-btn-compact-first-item){border-bottom-right-radius:0;border-top-right-radius:0}.ant-btn-icon-only.ant-btn-compact-item{flex:none}.ant-btn-compact-item.ant-btn-primary:not([disabled])+.ant-btn-compact-item.ant-btn-primary:not([disabled]){position:relative}.ant-btn-compact-item.ant-btn-primary:not([disabled])+.ant-btn-compact-item.ant-btn-primary:not([disabled]):after{background-color:#40a9ff;content:" ";display:inline-block;height:calc(100% + 2px);left:-1px;position:absolute;top:-1px;width:1px}.ant-btn-compact-item-rtl.ant-btn-compact-first-item.ant-btn-compact-item-rtl:not(.ant-btn-compact-last-item){border-bottom-left-radius:0;border-top-left-radius:0}.ant-btn-compact-item-rtl.ant-btn-compact-last-item.ant-btn-compact-item-rtl:not(.ant-btn-compact-first-item){border-bottom-right-radius:0;border-top-right-radius:0}.ant-btn-compact-item-rtl.ant-btn-sm.ant-btn-compact-first-item.ant-btn-compact-item-rtl.ant-btn-sm:not(.ant-btn-compact-last-item){border-bottom-left-radius:0;border-top-left-radius:0}.ant-btn-compact-item-rtl.ant-btn-sm.ant-btn-compact-last-item.ant-btn-compact-item-rtl.ant-btn-sm:not(.ant-btn-compact-first-item){border-bottom-right-radius:0;border-top-right-radius:0}.ant-btn-compact-item-rtl.ant-btn-primary:not([disabled])+.ant-btn-compact-item-rtl.ant-btn-primary:not([disabled]):after{right:-1px}.ant-btn-compact-vertical-item:not(.ant-btn-compact-vertical-last-item){margin-bottom:-1px}.ant-btn-compact-vertical-item:active,.ant-btn-compact-vertical-item:focus,.ant-btn-compact-vertical-item:hover{z-index:2}.ant-btn-compact-vertical-item[disabled]{z-index:0}.ant-btn-compact-vertical-item:not(.ant-btn-compact-vertical-first-item):not(.ant-btn-compact-vertical-last-item){border-radius:0}.ant-btn-compact-vertical-item.ant-btn-compact-vertical-first-item:not(.ant-btn-compact-vertical-last-item){border-bottom-left-radius:0;border-bottom-right-radius:0}.ant-btn-compact-vertical-item.ant-btn-compact-vertical-last-item:not(.ant-btn-compact-vertical-first-item){border-top-left-radius:0;border-top-right-radius:0}.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled])+.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]){position:relative}.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled])+.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]):after{background-color:#40a9ff;content:" ";display:inline-block;height:1px;left:-1px;position:absolute;top:-1px;width:calc(100% + 2px)}.ant-btn-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#d9d9d9;border-right-color:#40a9ff}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#40a9ff;border-right-color:#d9d9d9}.ant-btn-rtl.ant-btn>.ant-btn-loading-icon .anticon{padding-left:8px;padding-right:0}.ant-btn-rtl.ant-btn>.anticon+span,.ant-btn-rtl.ant-btn>span+.anticon{margin-left:0;margin-right:8px}.ant-popover{font-feature-settings:"tnum","tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:auto;font-size:14px;font-variant:tabular-nums;font-weight:400;left:0;line-height:1.5715;list-style:none;margin:0;max-width:100vw;padding:0;position:absolute;text-align:left;top:0;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;white-space:normal;z-index:1030}.ant-popover-content{position:relative}.ant-popover:after{background:hsla(0,0%,100%,.01);content:"";position:absolute}.ant-popover-hidden{display:none}.ant-popover-placement-top,.ant-popover-placement-topLeft,.ant-popover-placement-topRight{padding-bottom:15.3137085px}.ant-popover-placement-right,.ant-popover-placement-rightBottom,.ant-popover-placement-rightTop{padding-left:15.3137085px}.ant-popover-placement-bottom,.ant-popover-placement-bottomLeft,.ant-popover-placement-bottomRight{padding-top:15.3137085px}.ant-popover-placement-left,.ant-popover-placement-leftBottom,.ant-popover-placement-leftTop{padding-right:15.3137085px}.ant-popover-inner{background-clip:padding-box;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-popover-inner{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}}.ant-popover-title{border-bottom:1px solid #f0f0f0;color:rgba(0,0,0,.85);font-weight:500;margin:0;min-height:32px;min-width:177px;padding:5px 16px 4px}.ant-popover-inner-content{color:rgba(0,0,0,.85);max-width:100%;padding:12px 16px;width:-moz-max-content;width:max-content}.ant-popover-message{color:rgba(0,0,0,.85);display:flex;font-size:14px;padding:4px 0 12px}.ant-popover-message-icon{color:#faad14;display:inline-block;font-size:14px;margin-right:8px}.ant-popover-buttons{margin-bottom:4px;text-align:right}.ant-popover-buttons button:not(:first-child){margin-left:8px}.ant-popover-arrow{background:transparent;display:block;height:22px;overflow:hidden;pointer-events:none;position:absolute;width:22px}.ant-popover-arrow-content{--antd-arrow-background-color:#fff;border-radius:0 0 2px;bottom:0;content:"";display:block;height:11.3137085px;left:0;margin:auto;pointer-events:auto;pointer-events:none;position:absolute;right:0;top:0;width:11.3137085px}.ant-popover-arrow-content:before{background:var(--antd-arrow-background-color);background-position:-10px -10px;background-repeat:no-repeat;-webkit-clip-path:inset(33% 33%);clip-path:inset(33% 33%);-webkit-clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");clip-path:path("M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z");content:"";height:33.9411255px;left:-11.3137085px;position:absolute;top:-11.3137085px;width:33.9411255px}.ant-popover-placement-top .ant-popover-arrow,.ant-popover-placement-topLeft .ant-popover-arrow,.ant-popover-placement-topRight .ant-popover-arrow{bottom:0;transform:translateY(100%)}.ant-popover-placement-top .ant-popover-arrow-content,.ant-popover-placement-topLeft .ant-popover-arrow-content,.ant-popover-placement-topRight .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-11px) rotate(45deg)}.ant-popover-placement-top .ant-popover-arrow{left:50%;transform:translateY(100%) translateX(-50%)}.ant-popover-placement-topLeft .ant-popover-arrow{left:16px}.ant-popover-placement-topRight .ant-popover-arrow{right:16px}.ant-popover-placement-right .ant-popover-arrow,.ant-popover-placement-rightBottom .ant-popover-arrow,.ant-popover-placement-rightTop .ant-popover-arrow{left:0;transform:translateX(-100%)}.ant-popover-placement-right .ant-popover-arrow-content,.ant-popover-placement-rightBottom .ant-popover-arrow-content,.ant-popover-placement-rightTop .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateX(11px) rotate(135deg)}.ant-popover-placement-right .ant-popover-arrow{top:50%;transform:translateX(-100%) translateY(-50%)}.ant-popover-placement-rightTop .ant-popover-arrow{top:12px}.ant-popover-placement-rightBottom .ant-popover-arrow{bottom:12px}.ant-popover-placement-bottom .ant-popover-arrow,.ant-popover-placement-bottomLeft .ant-popover-arrow,.ant-popover-placement-bottomRight .ant-popover-arrow{top:0;transform:translateY(-100%)}.ant-popover-placement-bottom .ant-popover-arrow-content,.ant-popover-placement-bottomLeft .ant-popover-arrow-content,.ant-popover-placement-bottomRight .ant-popover-arrow-content{box-shadow:2px 2px 5px rgba(0,0,0,.06);transform:translateY(11px) rotate(-135deg)}.ant-popover-placement-bottom .ant-popover-arrow{left:50%;transform:translateY(-100%) translateX(-50%)}.ant-popover-placement-bottomLeft .ant-popover-arrow{left:16px}.ant-popover-placement-bottomRight .ant-popover-arrow{right:16px}.ant-popover-placement-left .ant-popover-arrow,.ant-popover-placement-leftBottom .ant-popover-arrow,.ant-popover-placement-leftTop .ant-popover-arrow{right:0;transform:translateX(100%)}.ant-popover-placement-left .ant-popover-arrow-content,.ant-popover-placement-leftBottom .ant-popover-arrow-content,.ant-popover-placement-leftTop .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateX(-11px) rotate(-45deg)}.ant-popover-placement-left .ant-popover-arrow{top:50%;transform:translateX(100%) translateY(-50%)}.ant-popover-placement-leftTop .ant-popover-arrow{top:12px}.ant-popover-placement-leftBottom .ant-popover-arrow{bottom:12px}.ant-popover-magenta .ant-popover-arrow-content,.ant-popover-magenta .ant-popover-inner,.ant-popover-pink .ant-popover-arrow-content,.ant-popover-pink .ant-popover-inner{background-color:#eb2f96}.ant-popover-red .ant-popover-arrow-content,.ant-popover-red .ant-popover-inner{background-color:#f5222d}.ant-popover-volcano .ant-popover-arrow-content,.ant-popover-volcano .ant-popover-inner{background-color:#fa541c}.ant-popover-orange .ant-popover-arrow-content,.ant-popover-orange .ant-popover-inner{background-color:#fa8c16}.ant-popover-yellow .ant-popover-arrow-content,.ant-popover-yellow .ant-popover-inner{background-color:#fadb14}.ant-popover-gold .ant-popover-arrow-content,.ant-popover-gold .ant-popover-inner{background-color:#faad14}.ant-popover-cyan .ant-popover-arrow-content,.ant-popover-cyan .ant-popover-inner{background-color:#13c2c2}.ant-popover-lime .ant-popover-arrow-content,.ant-popover-lime .ant-popover-inner{background-color:#a0d911}.ant-popover-green .ant-popover-arrow-content,.ant-popover-green .ant-popover-inner{background-color:#52c41a}.ant-popover-blue .ant-popover-arrow-content,.ant-popover-blue .ant-popover-inner{background-color:#1890ff}.ant-popover-geekblue .ant-popover-arrow-content,.ant-popover-geekblue .ant-popover-inner{background-color:#2f54eb}.ant-popover-purple .ant-popover-arrow-content,.ant-popover-purple .ant-popover-inner{background-color:#722ed1}.ant-popover-rtl{direction:rtl;text-align:right}.ant-popover-rtl .ant-popover-message-icon{margin-left:8px;margin-right:0}.ant-popover-rtl .ant-popover-message-title{padding-left:16px}.ant-popover-rtl .ant-popover-buttons{text-align:left}.ant-popover-rtl .ant-popover-buttons button{margin-left:0;margin-right:8px}.ant-popconfirm{z-index:1060}.ant-input-affix-wrapper{background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;color:rgba(0,0,0,.85);display:inline-block;display:inline-flex;font-size:14px;line-height:1.5715;min-width:0;padding:4px 11px;position:relative;transition:all .3s;width:100%}.ant-input-affix-wrapper::-moz-placeholder{color:#bfbfbf;-moz-user-select:none;user-select:none}.ant-input-affix-wrapper:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input-affix-wrapper::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-affix-wrapper:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:-ms-input-placeholder{text-overflow:ellipsis}.ant-input-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:hover{border-color:#40a9ff;border-right-width:1px}.ant-input-rtl .ant-input-affix-wrapper:hover{border-left-width:1px!important;border-right-width:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-input-rtl .ant-input-affix-wrapper-focused,.ant-input-rtl .ant-input-affix-wrapper:focus{border-left-width:1px!important;border-right-width:0}.ant-input-affix-wrapper-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-affix-wrapper-disabled:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-affix-wrapper[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-affix-wrapper[disabled]:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-affix-wrapper-borderless,.ant-input-affix-wrapper-borderless-disabled,.ant-input-affix-wrapper-borderless-focused,.ant-input-affix-wrapper-borderless:focus,.ant-input-affix-wrapper-borderless:hover,.ant-input-affix-wrapper-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-input-affix-wrapper{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-affix-wrapper-lg{font-size:16px;padding:6.5px 11px}.ant-input-affix-wrapper-sm{padding:0 7px}.ant-input-affix-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:#40a9ff;border-right-width:1px;z-index:1}.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-left-width:1px!important;border-right-width:0}.ant-input-search-with-button .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{z-index:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{z-index:1}.ant-input-affix-wrapper-disabled .ant-input[disabled]{background:hsla(0,0%,100%,0)}.ant-input-affix-wrapper>.ant-input{border:none;font-size:inherit;outline:none}.ant-input-affix-wrapper>.ant-input:focus{box-shadow:none!important}.ant-input-affix-wrapper>.ant-input:not(textarea){padding:0}.ant-input-affix-wrapper:before{content:"\a0";display:inline-block;visibility:hidden;width:0}.ant-input-prefix,.ant-input-suffix{align-items:center;display:flex;flex:none}.ant-input-prefix>:not(:last-child),.ant-input-suffix>:not(:last-child){margin-right:8px}.ant-input-show-count-suffix{color:rgba(0,0,0,.45)}.ant-input-show-count-has-suffix{margin-right:2px}.ant-input-prefix{margin-right:4px}.ant-input-suffix{margin-left:4px}.ant-input-clear-icon,.anticon.ant-input-clear-icon{color:rgba(0,0,0,.25);cursor:pointer;font-size:12px;margin:0;transition:color .3s;vertical-align:-1px}.ant-input-clear-icon:hover,.anticon.ant-input-clear-icon:hover{color:rgba(0,0,0,.45)}.ant-input-clear-icon:active,.anticon.ant-input-clear-icon:active{color:rgba(0,0,0,.85)}.ant-input-clear-icon-hidden,.anticon.ant-input-clear-icon-hidden{visibility:hidden}.ant-input-clear-icon-has-suffix,.anticon.ant-input-clear-icon-has-suffix{margin:0 4px}.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn{padding:0}.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon{position:absolute;right:8px;top:8px;z-index:1}.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input,.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover{background:#fff;border-color:#ff4d4f}.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused,.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus{border-color:#ff7875;border-right-width:1px;box-shadow:0 0 0 2px rgba(255,77,79,.2);outline:0}.ant-input-status-error .ant-input-prefix{color:#ff4d4f}.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input,.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover{background:#fff;border-color:#faad14}.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused,.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus{border-color:#ffc53d;border-right-width:1px;box-shadow:0 0 0 2px rgba(250,173,20,.2);outline:0}.ant-input-status-warning .ant-input-prefix{color:#faad14}.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover{background:#fff;border-color:#ff4d4f}.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused,.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus{border-color:#ff7875;border-right-width:1px;box-shadow:0 0 0 2px rgba(255,77,79,.2);outline:0}.ant-input-affix-wrapper-status-error .ant-input-prefix{color:#ff4d4f}.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover{background:#fff;border-color:#faad14}.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused,.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus{border-color:#ffc53d;border-right-width:1px;box-shadow:0 0 0 2px rgba(250,173,20,.2);outline:0}.ant-input-affix-wrapper-status-warning .ant-input-prefix{color:#faad14}.ant-input-textarea-status-error.ant-input-textarea-has-feedback .ant-input,.ant-input-textarea-status-success.ant-input-textarea-has-feedback .ant-input,.ant-input-textarea-status-validating.ant-input-textarea-has-feedback .ant-input,.ant-input-textarea-status-warning.ant-input-textarea-has-feedback .ant-input{padding-right:24px}.ant-input-group-wrapper-status-error .ant-input-group-addon{border-color:#ff4d4f;color:#ff4d4f}.ant-input-group-wrapper-status-warning .ant-input-group-addon{border-color:#faad14;color:#faad14}.ant-input{font-feature-settings:"tnum","tnum";background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;min-width:0;padding:4px 11px;position:relative;transition:all .3s;width:100%}.ant-input::-moz-placeholder{color:#bfbfbf;-moz-user-select:none;user-select:none}.ant-input:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-input:placeholder-shown{text-overflow:ellipsis}.ant-input:hover{border-color:#40a9ff;border-right-width:1px}.ant-input-rtl .ant-input:hover{border-left-width:1px!important;border-right-width:0}.ant-input-focused,.ant-input:focus{border-color:#40a9ff;border-right-width:1px;box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-input-rtl .ant-input-focused,.ant-input-rtl .ant-input:focus{border-left-width:1px!important;border-right-width:0}.ant-input-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px}.ant-input-borderless,.ant-input-borderless-disabled,.ant-input-borderless-focused,.ant-input-borderless:focus,.ant-input-borderless:hover,.ant-input-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-input{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-lg{font-size:16px;padding:6.5px 11px}.ant-input-sm{padding:0 7px}.ant-input-rtl{direction:rtl}.ant-input-group{font-feature-settings:"tnum","tnum";border-collapse:initial;border-spacing:0;box-sizing:border-box;color:rgba(0,0,0,.85);display:table;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative;width:100%}.ant-input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.ant-input-group>[class*=col-]{padding-right:8px}.ant-input-group>[class*=col-]:last-child{padding-right:0}.ant-input-group-addon,.ant-input-group-wrap,.ant-input-group>.ant-input{display:table-cell}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group-addon,.ant-input-group-wrap{vertical-align:middle;white-space:nowrap;width:1px}.ant-input-group-wrap>*{display:block!important}.ant-input-group .ant-input{float:left;margin-bottom:0;text-align:inherit;width:100%}.ant-input-group .ant-input:focus,.ant-input-group .ant-input:hover{border-right-width:1px;z-index:1}.ant-input-search-with-button .ant-input-group .ant-input:hover{z-index:0}.ant-input-group-addon{background-color:#fafafa;border:1px solid #d9d9d9;border-radius:2px;color:rgba(0,0,0,.85);font-size:14px;font-weight:400;padding:0 11px;position:relative;text-align:center;transition:all .3s}.ant-input-group-addon .ant-select{margin:-5px -11px}.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid transparent;box-shadow:none}.ant-input-group-addon .ant-select-focused .ant-select-selector,.ant-input-group-addon .ant-select-open .ant-select-selector{color:#1890ff}.ant-input-group-addon .ant-cascader-picker{background-color:initial;margin:-9px -12px}.ant-input-group-addon .ant-cascader-picker .ant-cascader-input{border:0;box-shadow:none;text-align:left}.ant-input-group-addon:first-child,.ant-input-group-addon:first-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:first-child,.ant-input-group>.ant-input:first-child .ant-select .ant-select-selector{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group-addon:last-child,.ant-input-group-addon:last-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:last-child,.ant-input-group>.ant-input:last-child .ant-select .ant-select-selector{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{font-size:16px;padding:6.5px 11px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{padding:0 7px}.ant-input-group-lg .ant-select-single .ant-select-selector{height:40px}.ant-input-group-sm .ant-select-single .ant-select-selector{height:24px}.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child){border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-group.ant-input-group-compact{display:block}.ant-input-group.ant-input-group-compact:before{content:"";display:table}.ant-input-group.ant-input-group-compact:after{clear:both;content:"";display:table}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-group.ant-input-group-compact>*{border-radius:0;display:inline-block;float:none;vertical-align:top}.ant-input-group.ant-input-group-compact>.ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact>.ant-input-number-affix-wrapper,.ant-input-group.ant-input-group-compact>.ant-picker-range{display:inline-flex}.ant-input-group.ant-input-group-compact>:not(:last-child){border-right-width:1px;margin-right:-1px}.ant-input-group.ant-input-group-compact .ant-input{float:none}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector{border-radius:0;border-right-width:1px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-focused,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-arrow,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:first-child{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:last-child{border-bottom-right-radius:2px;border-right-width:1px;border-top-right-radius:2px}.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-group-rtl .ant-input-group-addon:first-child,.ant-input-group>.ant-input-rtl:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl .ant-input-group-addon:first-child{border-left:0;border-right:1px solid #d9d9d9}.ant-input-group-rtl .ant-input-group-addon:last-child{border-left:1px solid #d9d9d9;border-radius:2px 0 0 2px;border-right:0}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-group-rtl.ant-input-group-addon:last-child,.ant-input-group-rtl.ant-input-group>.ant-input:last-child{border-radius:2px 0 0 2px}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:not(:last-child){border-left-width:1px;margin-left:-1px;margin-right:0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:last-child{border-left-width:1px;border-radius:2px 0 0 2px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl+.ant-input-group-wrapper-rtl{margin-left:0;margin-right:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:0 2px 2px 0}.ant-input-group-wrapper{display:inline-block;text-align:start;vertical-align:top;width:100%}.ant-input-password-icon.anticon{color:rgba(0,0,0,.45);cursor:pointer;transition:all .3s}.ant-input-password-icon.anticon:hover{color:rgba(0,0,0,.85)}.ant-input[type=color]{height:32px}.ant-input[type=color].ant-input-lg{height:40px}.ant-input[type=color].ant-input-sm{height:24px;padding-bottom:3px;padding-top:3px}.ant-input-textarea-show-count>.ant-input{height:100%}.ant-input-textarea-show-count:after{color:rgba(0,0,0,.45);content:attr(data-count);float:right;pointer-events:none;white-space:nowrap}.ant-input-textarea-show-count.ant-input-textarea-in-form-item:after{margin-bottom:-22px}.ant-input-textarea-suffix{align-items:center;bottom:0;display:inline-flex;margin:auto;position:absolute;right:11px;top:0;z-index:1}.ant-input-compact-item:not(.ant-input-compact-last-item):not(.ant-input-compact-item-rtl){margin-right:-1px}.ant-input-compact-item:not(.ant-input-compact-last-item).ant-input-compact-item-rtl{margin-left:-1px}.ant-input-compact-item:active,.ant-input-compact-item:focus,.ant-input-compact-item:hover{z-index:2}.ant-input-compact-item[disabled]{z-index:0}.ant-input-compact-item:not(.ant-input-compact-first-item):not(.ant-input-compact-last-item).ant-input{border-radius:0}.ant-input-compact-item.ant-input.ant-input-compact-first-item:not(.ant-input-compact-last-item):not(.ant-input-compact-item-rtl){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-compact-item.ant-input.ant-input-compact-item-rtl.ant-input-compact-first-item:not(.ant-input-compact-last-item),.ant-input-compact-item.ant-input.ant-input-compact-last-item:not(.ant-input-compact-first-item):not(.ant-input-compact-item-rtl){border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-compact-item.ant-input.ant-input-compact-item-rtl.ant-input-compact-last-item:not(.ant-input-compact-first-item){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-search .ant-input:focus,.ant-input-search .ant-input:hover{border-color:#40a9ff}.ant-input-search .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:#40a9ff}.ant-input-search .ant-input-affix-wrapper{border-radius:0}.ant-input-search .ant-input-lg{line-height:1.5713}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child{border:0;left:-1px;padding:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button{border-radius:0 2px 2px 0;padding-bottom:0;padding-top:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary){color:rgba(0,0,0,.45)}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading:before{bottom:0;left:0;right:0;top:0}.ant-input-search-button{height:32px}.ant-input-search-button:focus,.ant-input-search-button:hover{z-index:1}.ant-input-search-large .ant-input-search-button{height:40px}.ant-input-search-small .ant-input-search-button{height:24px}.ant-input-search.ant-input-compact-item:not(.ant-input-compact-item-rtl):not(.ant-input-compact-last-item) .ant-input-group-addon .ant-input-search-button{border-radius:0;margin-right:-1px}.ant-input-search.ant-input-compact-item:not(.ant-input-compact-first-item) .ant-input,.ant-input-search.ant-input-compact-item:not(.ant-input-compact-first-item) .ant-input-affix-wrapper{border-radius:0}.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:active,.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:focus,.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:hover,.ant-input-search.ant-input-compact-item>.ant-input-affix-wrapper-focused,.ant-input-search.ant-input-compact-item>.ant-input-group-addon .ant-input-search-button:active,.ant-input-search.ant-input-compact-item>.ant-input-group-addon .ant-input-search-button:focus,.ant-input-search.ant-input-compact-item>.ant-input-group-addon .ant-input-search-button:hover,.ant-input-search.ant-input-compact-item>.ant-input:active,.ant-input-search.ant-input-compact-item>.ant-input:focus,.ant-input-search.ant-input-compact-item>.ant-input:hover{z-index:2}.ant-input-search.ant-input-compact-item-rtl:not(.ant-input-compact-last-item) .ant-input-group-addon:last-child .ant-input-search-button{border-radius:0;margin-left:-1px}.ant-input-group-rtl,.ant-input-group-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl>input.ant-input{border:none;outline:none}.ant-input-affix-wrapper-rtl .ant-input-prefix{margin:0 0 0 4px}.ant-input-affix-wrapper-rtl .ant-input-suffix{margin:0 4px 0 0}.ant-input-textarea-rtl{direction:rtl}.ant-input-textarea-rtl.ant-input-textarea-show-count:after{text-align:left}.ant-input-affix-wrapper-rtl .ant-input-clear-icon-has-suffix{margin-left:4px;margin-right:0}.ant-input-affix-wrapper-rtl .ant-input-clear-icon{left:8px;right:auto}.ant-input-search-rtl{direction:rtl}.ant-input-search-rtl .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search-rtl .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:#d9d9d9}.ant-input-search-rtl .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary):hover,.ant-input-search-rtl .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary):hover{border-left-color:#40a9ff}.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper-focused,.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper:hover{border-right-color:#40a9ff}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon:last-child{left:auto;right:-1px}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button{border-radius:2px 0 0 2px}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-input{height:32px}.ant-input-lg{height:40px}.ant-input-sm{height:24px}.ant-input-affix-wrapper>input.ant-input{height:auto}} +/*# sourceMappingURL=main.43eaeb58.css.map*/ \ No newline at end of file diff --git a/build/static/css/main.43eaeb58.css.map b/build/static/css/main.43eaeb58.css.map new file mode 100644 index 0000000..d2d2265 --- /dev/null +++ b/build/static/css/main.43eaeb58.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.43eaeb58.css","mappings":"AAIA,gLAME,YACF,CAEA,UAGE,WAAY,CADZ,UAEF,CACA,mCAEE,YACF,CACA,iBAGE,qBACF,CACA,KAGE,6BAA8B,CAC9B,yBAA0B,CAC1B,4BAA6B,CAC7B,yCAA6C,CAL7C,sBAAuB,CACvB,gBAKF,CACA,cACE,kBACF,CACA,KAQE,mCAA6B,CAD7B,qBAAsB,CALtB,qBAA0B,CAE1B,wKAAkM,CADlM,cAAe,CAEf,yBAA0B,CAC1B,kBAAmB,CALnB,QAQF,CACA,sBACE,sBACF,CACA,GACE,kBAAuB,CACvB,QAAS,CACT,gBACF,CACA,kBAQE,qBAA0B,CAC1B,eAAgB,CAFhB,kBAAoB,CADpB,YAIF,CACA,EAEE,iBAAkB,CADlB,YAEF,CACA,sCAKE,eAAgB,CAChB,WAAY,CAJZ,yBAA0B,CAC1B,wCAAyC,CACjC,gCAGV,CACA,QAEE,iBAAkB,CAClB,mBAAoB,CAFpB,iBAGF,CACA,kEAIE,uBACF,CACA,SAIE,iBAAkB,CADlB,YAEF,CACA,wBAIE,eACF,CACA,GACE,eACF,CACA,GACE,kBAAoB,CACpB,aACF,CACA,WACE,cACF,CACA,IACE,iBACF,CACA,SAEE,kBACF,CACA,MACE,aACF,CACA,QAGE,aAAc,CACd,aAAc,CAFd,iBAAkB,CAGlB,sBACF,CACA,IACE,aACF,CACA,IACE,SACF,CACA,EAOE,oCAAqC,CAJrC,wBAA6B,CAF7B,aAAc,CAId,cAAe,CADf,YAAa,CAFb,oBAAqB,CAIrB,oBAEF,CACA,QACE,aACF,CACA,SACE,aACF,CAMA,yBAEE,SAAU,CADV,oBAEF,CACA,YACE,qBAA0B,CAC1B,kBACF,CACA,kBAKE,2EAAqF,CADrF,aAEF,CACA,IAEE,iBAAkB,CADlB,YAAa,CAEb,aACF,CACA,OACE,cACF,CACA,IAEE,iBAAkB,CADlB,qBAEF,CACA,kFASE,yBACF,CACA,MACE,wBACF,CACA,QAKE,mBAAoB,CAFpB,qBAA0B,CAD1B,mBAAqB,CADrB,iBAAmB,CAGnB,eAEF,CACA,sCAME,aAAc,CAEd,mBAAoB,CADpB,iBAAkB,CAElB,mBAAoB,CAJpB,QAKF,CACA,aAEE,gBACF,CACA,cAEE,mBACF,CACA,qDAIE,yBACF,CACA,wHAKE,iBAAkB,CADlB,SAEF,CACA,uCAEE,qBAAsB,CACtB,SACF,CACA,+EAIE,0BACF,CACA,SACE,aAAc,CACd,eACF,CACA,SAIE,QAAS,CAFT,QAAS,CADT,WAAY,CAEZ,SAEF,CACA,OAME,aAAc,CALd,aAAc,CAMd,eAAgB,CAChB,mBAAoB,CAJpB,kBAAoB,CADpB,cAAe,CAEf,SAAU,CAIV,kBAAmB,CAPnB,UAQF,CACA,SACE,sBACF,CACA,kFAEE,WACF,CACA,cAEE,uBAAwB,CADxB,mBAEF,CACA,qFAEE,uBACF,CACA,6BAEE,yBAA0B,CAD1B,YAEF,CACA,OACE,oBACF,CACA,QACE,iBACF,CACA,SACE,YACF,CACA,SACE,sBACF,CACA,KAEE,wBAAyB,CADzB,YAEF,CACA,iBAEE,kBAAmB,CADnB,UAEF,CACA,YAEE,kBAAmB,CADnB,UAEF,CAKA,iCAFE,UAAW,CADX,aAOF,CAJA,gBAEE,UAEF,CACA,SAUE,kCAAmC,CACnC,iCAAkC,CATlC,kBAAmB,CACnB,aAAc,CAFd,mBAAoB,CAGpB,iBAAkB,CAClB,aAAc,CACd,iBAAkB,CAGlB,iCAAkC,CAFlC,mBAAoB,CACpB,sBAIF,CACA,WACE,aACF,CACA,aACE,oBACF,CACA,gBACE,YACF,CACA,uBACE,aACF,CACA,kBACE,aAAc,CACd,gBACF,CACA,mBACE,cACF,CACA,mCAGE,0CAA2C,CAD3C,oBAEF,CAOA,iDACE,sBAAwB,CACxB,wBAAyB,CACzB,2BACF,CACA,8EAEE,wBAAyB,CACzB,4BACF,CACA,sCACE,yBAA0B,CAC1B,4BAA6B,CAC7B,mBACF,CACA,iCAGE,gCAAiC,CADjC,SAEF,CACA,gBACE,gCACF,CACA,qBACE,GACE,SACF,CACA,GACE,SACF,CACF,CACA,sBACE,GACE,SACF,CACA,GACE,SACF,CACF,CAOA,0DACE,sBAAwB,CACxB,wBAAyB,CACzB,2BACF,CACA,0FAEE,0BAA2B,CAC3B,4BACF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,mEAEE,cACF,CACA,yBACE,uDACF,CAOA,0DACE,sBAAwB,CACxB,wBAAyB,CACzB,2BACF,CACA,0FAEE,0BAA2B,CAC3B,4BACF,CACA,4CACE,2BAA4B,CAC5B,4BAA6B,CAC7B,mBACF,CACA,uCAIE,qDAA4D,CAD5D,SAAU,CADV,kBAGF,CACA,uDAEE,cACF,CACA,mBACE,uDACF,CAOA,gEACE,sBAAwB,CACxB,wBAAyB,CACzB,2BACF,CACA,kGAEE,4BAA6B,CAC7B,4BACF,CACA,gDACE,6BAA8B,CAC9B,4BAA6B,CAC7B,mBACF,CACA,2CAIE,qDAA4D,CAD5D,SAAU,CADV,kBAGF,CACA,2DAEE,cACF,CACA,qBACE,uDACF,CAOA,gEACE,sBAAwB,CACxB,wBAAyB,CACzB,2BACF,CACA,kGAEE,4BAA6B,CAC7B,4BACF,CACA,gDACE,6BAA8B,CAC9B,4BAA6B,CAC7B,mBACF,CACA,2CAIE,qDAA4D,CAD5D,SAAU,CADV,kBAGF,CACA,2DAEE,cACF,CACA,qBACE,uDACF,CAOA,mEACE,sBAAwB,CACxB,wBAAyB,CACzB,2BACF,CACA,sGAEE,6BAA8B,CAC9B,4BACF,CACA,kDACE,8BAA+B,CAC/B,4BAA6B,CAC7B,mBACF,CACA,6CAIE,qDAA4D,CAD5D,SAAU,CADV,kBAGF,CACA,6DAEE,cACF,CACA,sBACE,uDACF,CACA,qBACE,GAEE,SAAU,CADV,mBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,sBACE,GACE,kBACF,CACA,GAEE,SAAU,CADV,mBAEF,CACF,CACA,wBACE,GAEE,SAAU,CADV,mBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,yBACE,GACE,kBACF,CACA,GAEE,SAAU,CADV,mBAEF,CACF,CACA,uBACE,GAGE,SAAU,CAFV,mBAAqB,CACrB,sBAEF,CACA,GACE,kBAAmB,CACnB,sBACF,CACF,CACA,wBACE,GACE,kBAAmB,CACnB,sBACF,CACA,GAGE,SAAU,CAFV,mBAAqB,CACrB,sBAEF,CACF,CACA,yBACE,GAGE,SAAU,CAFV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E,sCAA2C,CAC3C,yCACF,CACA,8CACE,QAAS,CACT,2CACF,CACA,kDACE,SACF,CACA,mDACE,UACF,CACA,yJAGE,MAAO,CACP,2BACF,CACA,iLAGE,sCAA2C,CAC3C,yCACF,CACA,gDACE,OAAQ,CACR,4CACF,CACA,mDACE,QACF,CACA,sDACE,WACF,CACA,4JAGE,KAAM,CACN,2BACF,CACA,oLAGE,sCAA2C,CAC3C,0CACF,CACA,iDACE,QAAS,CACT,4CACF,CACA,qDACE,SACF,CACA,sDACE,UACF,CACA,sJAGE,OAAQ,CACR,0BACF,CACA,8KAGE,sCAA2C,CAC3C,0CACF,CACA,+CACE,OAAQ,CACR,2CACF,CACA,kDACE,QACF,CACA,qDACE,WACF,CAUA,0KACE,wBACF,CAIA,gFACE,wBACF,CAIA,wFACE,wBACF,CAIA,sFACE,wBACF,CAIA,sFACE,wBACF,CAIA,kFACE,wBACF,CAIA,kFACE,wBACF,CAIA,kFACE,wBACF,CAIA,oFACE,wBACF,CAIA,kFACE,wBACF,CAIA,0FACE,wBACF,CAIA,sFACE,wBACF,CACA,iBACE,aAAc,CACd,gBACF,CACA,2CAEE,eAAgB,CADhB,cAEF,CACA,4CACE,iBACF,CACA,sCACE,eACF,CACA,6CAEE,aAAc,CADd,gBAEF,CCvUA,gBACE,YACF,CCFA,yBASE,qBAAsB,CACtB,qBAAsB,CACtB,wBAAyB,CACzB,iBAAkB,CANlB,qBAA0B,CAJ1B,oBAAqB,CAYrB,mBAAoB,CAPpB,cAAe,CACf,kBAAmB,CAJnB,WAAY,CACZ,gBAAiB,CAJjB,iBAAkB,CAYlB,kBAAoB,CAVpB,UAYF,CACA,2CACE,aAAc,CACd,qBAAsB,CACjB,gBACP,CACA,+CACE,aAAc,CACd,oBAAqB,CACjB,gBACN,CACA,sCACE,aAAc,CACd,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,gDACE,sBACF,CACA,+CACE,sBACF,CACA,2CACE,sBACF,CACA,+BACE,oBAAqB,CACrB,sBACF,CACA,8CAEE,+BAAiC,CADjC,oBAEF,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CAFT,SAAU,CACV,SAEF,CACA,8FAGE,yBAA0B,CAD1B,gBAAiB,CADjB,aAGF,CACA,oHACE,qBACF,CACA,2IAGE,QAAS,CACT,MAAO,CAFP,OAAQ,CADR,KAIF,CACA,yBACE,WACF,CACA,8DAEE,SACF,CACA,iDACE,WACF,CACA,iDACE,WACF,CACA,4JAEE,eAAgB,CADhB,iBAEF,CACA,4LAEE,eACF,CAYA,gvBACE,SACF,CACA,0IAEE,eAAgB,CADhB,gBAEF,CAIA,kDACE,aACF,CACA,qEACE,WAAY,CACZ,YACF,CACA,+CACE,gBACF,CACA,+CACE,gBACF,CACA,wBACE,aACF,CACA,4DACE,eACF,CACA,8DAEE,eAAgB,CADhB,cAEF,CACA,mDAEE,QAAS,CADT,UAEF,CACA,sBACE,aACF,CACA,0NAEE,yBACF,CACA,sOAEE,yBACF,CACA,8IAEE,0BACF,CACA,yEAEE,SAAU,CADV,UAEF,CACA,kGACE,yBACF,CACA,sEACE,WACE,WACF,CACA,cACE,WACF,CACA,cACE,WACF,CACA,yCACE,WACF,CACF","sources":["../node_modules/antd/es/style/default.css","../node_modules/antd/es/button/style/index.css","../node_modules/antd/es/popover/style/index.css","../node_modules/antd/es/popconfirm/style/index.css","../node_modules/antd/es/input/style/index.css"],"sourcesContent":["/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n[class^=ant-]::-ms-clear,\n[class*= ant-]::-ms-clear,\n[class^=ant-] input::-ms-clear,\n[class*= ant-] input::-ms-clear,\n[class^=ant-] input::-ms-reveal,\n[class*= ant-] input::-ms-reveal {\n display: none;\n}\n/* stylelint-disable property-no-vendor-prefix, at-rule-no-vendor-prefix */\nhtml,\nbody {\n width: 100%;\n height: 100%;\n}\ninput::-ms-clear,\ninput::-ms-reveal {\n display: none;\n}\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n@-ms-viewport {\n width: device-width;\n}\nbody {\n margin: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n font-variant: tabular-nums;\n line-height: 1.5715;\n background-color: #fff;\n font-feature-settings: 'tnum';\n}\n[tabindex='-1']:focus {\n outline: none !important;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 0.5em;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n}\np {\n margin-top: 0;\n margin-bottom: 1em;\n}\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n border-bottom: 0;\n cursor: help;\n}\naddress {\n margin-bottom: 1em;\n font-style: normal;\n line-height: inherit;\n}\ninput[type='text'],\ninput[type='password'],\ninput[type='number'],\ntextarea {\n -webkit-appearance: none;\n}\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1em;\n}\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\ndt {\n font-weight: 500;\n}\ndd {\n margin-bottom: 0.5em;\n margin-left: 0;\n}\nblockquote {\n margin: 0 0 1em;\n}\ndfn {\n font-style: italic;\n}\nb,\nstrong {\n font-weight: bolder;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\na {\n color: #1890ff;\n text-decoration: none;\n background-color: transparent;\n outline: none;\n cursor: pointer;\n transition: color 0.3s;\n -webkit-text-decoration-skip: objects;\n}\na:hover {\n color: #40a9ff;\n}\na:active {\n color: #096dd9;\n}\na:active,\na:hover {\n text-decoration: none;\n outline: 0;\n}\na:focus {\n text-decoration: none;\n outline: 0;\n}\na[disabled] {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\npre,\ncode,\nkbd,\nsamp {\n font-size: 1em;\n font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;\n}\npre {\n margin-top: 0;\n margin-bottom: 1em;\n overflow: auto;\n}\nfigure {\n margin: 0 0 1em;\n}\nimg {\n vertical-align: middle;\n border-style: none;\n}\na,\narea,\nbutton,\n[role='button'],\ninput:not([type='range']),\nlabel,\nselect,\nsummary,\ntextarea {\n touch-action: manipulation;\n}\ntable {\n border-collapse: collapse;\n}\ncaption {\n padding-top: 0.75em;\n padding-bottom: 0.3em;\n color: rgba(0, 0, 0, 0.45);\n text-align: left;\n caption-side: bottom;\n}\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\nbutton,\ninput {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\nbutton::-moz-focus-inner,\n[type='button']::-moz-focus-inner,\n[type='reset']::-moz-focus-inner,\n[type='submit']::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\ninput[type='radio'],\ninput[type='checkbox'] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type='date'],\ninput[type='time'],\ninput[type='datetime-local'],\ninput[type='month'] {\n -webkit-appearance: listbox;\n}\ntextarea {\n overflow: auto;\n resize: vertical;\n}\nfieldset {\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: 0.5em;\n padding: 0;\n color: inherit;\n font-size: 1.5em;\n line-height: inherit;\n white-space: normal;\n}\nprogress {\n vertical-align: baseline;\n}\n[type='number']::-webkit-inner-spin-button,\n[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n[type='search'] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n[type='search']::-webkit-search-cancel-button,\n[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\noutput {\n display: inline-block;\n}\nsummary {\n display: list-item;\n}\ntemplate {\n display: none;\n}\n[hidden] {\n display: none !important;\n}\nmark {\n padding: 0.2em;\n background-color: #feffe6;\n}\n::-moz-selection {\n color: #fff;\n background: #1890ff;\n}\n::selection {\n color: #fff;\n background: #1890ff;\n}\n.clearfix::before {\n display: table;\n content: '';\n}\n.clearfix::after {\n display: table;\n clear: both;\n content: '';\n}\n.anticon {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizelegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.anticon > * {\n line-height: 1;\n}\n.anticon svg {\n display: inline-block;\n}\n.anticon::before {\n display: none;\n}\n.anticon .anticon-icon {\n display: block;\n}\n.anticon > .anticon {\n line-height: 0;\n vertical-align: 0;\n}\n.anticon[tabindex] {\n cursor: pointer;\n}\n.anticon-spin,\n.anticon-spin::before {\n display: inline-block;\n animation: loadingCircle 1s infinite linear;\n}\n.ant-fade-enter,\n.ant-fade-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-fade-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-fade-enter.ant-fade-enter-active,\n.ant-fade-appear.ant-fade-appear-active {\n animation-name: antFadeIn;\n animation-play-state: running;\n}\n.ant-fade-leave.ant-fade-leave-active {\n animation-name: antFadeOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-fade-enter,\n.ant-fade-appear {\n opacity: 0;\n animation-timing-function: linear;\n}\n.ant-fade-leave {\n animation-timing-function: linear;\n}\n@keyframes antFadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes antFadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n.ant-move-up-enter,\n.ant-move-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-up-enter.ant-move-up-enter-active,\n.ant-move-up-appear.ant-move-up-appear-active {\n animation-name: antMoveUpIn;\n animation-play-state: running;\n}\n.ant-move-up-leave.ant-move-up-leave-active {\n animation-name: antMoveUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-up-enter,\n.ant-move-up-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-up-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-down-enter,\n.ant-move-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-down-enter.ant-move-down-enter-active,\n.ant-move-down-appear.ant-move-down-appear-active {\n animation-name: antMoveDownIn;\n animation-play-state: running;\n}\n.ant-move-down-leave.ant-move-down-leave-active {\n animation-name: antMoveDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-down-enter,\n.ant-move-down-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-down-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-left-enter,\n.ant-move-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-left-enter.ant-move-left-enter-active,\n.ant-move-left-appear.ant-move-left-appear-active {\n animation-name: antMoveLeftIn;\n animation-play-state: running;\n}\n.ant-move-left-leave.ant-move-left-leave-active {\n animation-name: antMoveLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-left-enter,\n.ant-move-left-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-left-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n.ant-move-right-enter,\n.ant-move-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-move-right-enter.ant-move-right-enter-active,\n.ant-move-right-appear.ant-move-right-appear-active {\n animation-name: antMoveRightIn;\n animation-play-state: running;\n}\n.ant-move-right-leave.ant-move-right-leave-active {\n animation-name: antMoveRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-move-right-enter,\n.ant-move-right-appear {\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-move-right-leave {\n animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n}\n@keyframes antMoveDownIn {\n 0% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveDownOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveLeftIn {\n 0% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveLeftOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveRightIn {\n 0% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveRightOut {\n 0% {\n transform: translateX(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateX(100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes antMoveUpIn {\n 0% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n 100% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n}\n@keyframes antMoveUpOut {\n 0% {\n transform: translateY(0%);\n transform-origin: 0 0;\n opacity: 1;\n }\n 100% {\n transform: translateY(-100%);\n transform-origin: 0 0;\n opacity: 0;\n }\n}\n@keyframes loadingCircle {\n 100% {\n transform: rotate(360deg);\n }\n}\n[ant-click-animating='true'],\n[ant-click-animating-without-extra-node='true'] {\n position: relative;\n}\nhtml {\n --antd-wave-shadow-color: #1890ff;\n --scroll-bar: 0;\n}\n[ant-click-animating-without-extra-node='true']::after,\n.ant-click-animating-node {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n border-radius: inherit;\n box-shadow: 0 0 0 0 #1890ff;\n box-shadow: 0 0 0 0 var(--antd-wave-shadow-color);\n opacity: 0.2;\n animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);\n animation-fill-mode: forwards;\n content: '';\n pointer-events: none;\n}\n@keyframes waveEffect {\n 100% {\n box-shadow: 0 0 0 #1890ff;\n box-shadow: 0 0 0 6px var(--antd-wave-shadow-color);\n }\n}\n@keyframes fadeEffect {\n 100% {\n opacity: 0;\n }\n}\n.ant-slide-up-enter,\n.ant-slide-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-up-enter.ant-slide-up-enter-active,\n.ant-slide-up-appear.ant-slide-up-appear-active {\n animation-name: antSlideUpIn;\n animation-play-state: running;\n}\n.ant-slide-up-leave.ant-slide-up-leave-active {\n animation-name: antSlideUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-up-enter,\n.ant-slide-up-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-up-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-down-enter,\n.ant-slide-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-down-enter.ant-slide-down-enter-active,\n.ant-slide-down-appear.ant-slide-down-appear-active {\n animation-name: antSlideDownIn;\n animation-play-state: running;\n}\n.ant-slide-down-leave.ant-slide-down-leave-active {\n animation-name: antSlideDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-down-enter,\n.ant-slide-down-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-down-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-left-enter,\n.ant-slide-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-left-enter.ant-slide-left-enter-active,\n.ant-slide-left-appear.ant-slide-left-appear-active {\n animation-name: antSlideLeftIn;\n animation-play-state: running;\n}\n.ant-slide-left-leave.ant-slide-left-leave-active {\n animation-name: antSlideLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-left-enter,\n.ant-slide-left-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-left-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n.ant-slide-right-enter,\n.ant-slide-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-slide-right-enter.ant-slide-right-enter-active,\n.ant-slide-right-appear.ant-slide-right-appear-active {\n animation-name: antSlideRightIn;\n animation-play-state: running;\n}\n.ant-slide-right-leave.ant-slide-right-leave-active {\n animation-name: antSlideRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-slide-right-enter,\n.ant-slide-right-appear {\n transform: scale(0);\n transform-origin: 0% 0%;\n opacity: 0;\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n}\n.ant-slide-right-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n}\n@keyframes antSlideUpIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideUpOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideDownIn {\n 0% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n}\n@keyframes antSlideDownOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 100% 100%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0.8);\n transform-origin: 100% 100%;\n opacity: 0;\n }\n}\n@keyframes antSlideLeftIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideLeftOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n@keyframes antSlideRightIn {\n 0% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n}\n@keyframes antSlideRightOut {\n 0% {\n transform: scaleX(1);\n transform-origin: 100% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleX(0.8);\n transform-origin: 100% 0%;\n opacity: 0;\n }\n}\n.ant-zoom-enter,\n.ant-zoom-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-enter.ant-zoom-enter-active,\n.ant-zoom-appear.ant-zoom-appear-active {\n animation-name: antZoomIn;\n animation-play-state: running;\n}\n.ant-zoom-leave.ant-zoom-leave-active {\n animation-name: antZoomOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-enter,\n.ant-zoom-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-enter-prepare,\n.ant-zoom-appear-prepare {\n transform: none;\n}\n.ant-zoom-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-big-enter,\n.ant-zoom-big-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-enter.ant-zoom-big-enter-active,\n.ant-zoom-big-appear.ant-zoom-big-appear-active {\n animation-name: antZoomBigIn;\n animation-play-state: running;\n}\n.ant-zoom-big-leave.ant-zoom-big-leave-active {\n animation-name: antZoomBigOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-big-enter,\n.ant-zoom-big-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-big-enter-prepare,\n.ant-zoom-big-appear-prepare {\n transform: none;\n}\n.ant-zoom-big-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-big-fast-enter,\n.ant-zoom-big-fast-appear {\n animation-duration: 0.1s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-fast-leave {\n animation-duration: 0.1s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active,\n.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active {\n animation-name: antZoomBigIn;\n animation-play-state: running;\n}\n.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active {\n animation-name: antZoomBigOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-big-fast-enter,\n.ant-zoom-big-fast-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-big-fast-enter-prepare,\n.ant-zoom-big-fast-appear-prepare {\n transform: none;\n}\n.ant-zoom-big-fast-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-up-enter,\n.ant-zoom-up-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-up-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-up-enter.ant-zoom-up-enter-active,\n.ant-zoom-up-appear.ant-zoom-up-appear-active {\n animation-name: antZoomUpIn;\n animation-play-state: running;\n}\n.ant-zoom-up-leave.ant-zoom-up-leave-active {\n animation-name: antZoomUpOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-up-enter,\n.ant-zoom-up-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-up-enter-prepare,\n.ant-zoom-up-appear-prepare {\n transform: none;\n}\n.ant-zoom-up-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-down-enter,\n.ant-zoom-down-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-down-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-down-enter.ant-zoom-down-enter-active,\n.ant-zoom-down-appear.ant-zoom-down-appear-active {\n animation-name: antZoomDownIn;\n animation-play-state: running;\n}\n.ant-zoom-down-leave.ant-zoom-down-leave-active {\n animation-name: antZoomDownOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-down-enter,\n.ant-zoom-down-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-down-enter-prepare,\n.ant-zoom-down-appear-prepare {\n transform: none;\n}\n.ant-zoom-down-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-left-enter,\n.ant-zoom-left-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-left-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-left-enter.ant-zoom-left-enter-active,\n.ant-zoom-left-appear.ant-zoom-left-appear-active {\n animation-name: antZoomLeftIn;\n animation-play-state: running;\n}\n.ant-zoom-left-leave.ant-zoom-left-leave-active {\n animation-name: antZoomLeftOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-left-enter,\n.ant-zoom-left-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-left-enter-prepare,\n.ant-zoom-left-appear-prepare {\n transform: none;\n}\n.ant-zoom-left-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-zoom-right-enter,\n.ant-zoom-right-appear {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-right-leave {\n animation-duration: 0.2s;\n animation-fill-mode: both;\n animation-play-state: paused;\n}\n.ant-zoom-right-enter.ant-zoom-right-enter-active,\n.ant-zoom-right-appear.ant-zoom-right-appear-active {\n animation-name: antZoomRightIn;\n animation-play-state: running;\n}\n.ant-zoom-right-leave.ant-zoom-right-leave-active {\n animation-name: antZoomRightOut;\n animation-play-state: running;\n pointer-events: none;\n}\n.ant-zoom-right-enter,\n.ant-zoom-right-appear {\n transform: scale(0);\n opacity: 0;\n animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n}\n.ant-zoom-right-enter-prepare,\n.ant-zoom-right-appear-prepare {\n transform: none;\n}\n.ant-zoom-right-leave {\n animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n@keyframes antZoomIn {\n 0% {\n transform: scale(0.2);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes antZoomOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.2);\n opacity: 0;\n }\n}\n@keyframes antZoomBigIn {\n 0% {\n transform: scale(0.8);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes antZoomBigOut {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0.8);\n opacity: 0;\n }\n}\n@keyframes antZoomUpIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n}\n@keyframes antZoomUpOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 0%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 0%;\n opacity: 0;\n }\n}\n@keyframes antZoomLeftIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n}\n@keyframes antZoomLeftOut {\n 0% {\n transform: scale(1);\n transform-origin: 0% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 0% 50%;\n opacity: 0;\n }\n}\n@keyframes antZoomRightIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n}\n@keyframes antZoomRightOut {\n 0% {\n transform: scale(1);\n transform-origin: 100% 50%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 100% 50%;\n opacity: 0;\n }\n}\n@keyframes antZoomDownIn {\n 0% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n}\n@keyframes antZoomDownOut {\n 0% {\n transform: scale(1);\n transform-origin: 50% 100%;\n }\n 100% {\n transform: scale(0.8);\n transform-origin: 50% 100%;\n opacity: 0;\n }\n}\n.ant-motion-collapse-legacy {\n overflow: hidden;\n}\n.ant-motion-collapse-legacy-active {\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n.ant-motion-collapse {\n overflow: hidden;\n transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-btn {\n line-height: 1.5715;\n position: relative;\n display: inline-block;\n font-weight: 400;\n white-space: nowrap;\n text-align: center;\n background-image: none;\n border: 1px solid transparent;\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015);\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: manipulation;\n height: 32px;\n padding: 4px 15px;\n font-size: 14px;\n border-radius: 2px;\n color: rgba(0, 0, 0, 0.85);\n border-color: #d9d9d9;\n background: #fff;\n}\n.ant-btn > .anticon {\n line-height: 1;\n}\n.ant-btn,\n.ant-btn:active,\n.ant-btn:focus {\n outline: 0;\n}\n.ant-btn:not([disabled]):hover {\n text-decoration: none;\n}\n.ant-btn:not([disabled]):active {\n outline: 0;\n box-shadow: none;\n}\n.ant-btn[disabled] {\n cursor: not-allowed;\n}\n.ant-btn[disabled] > * {\n pointer-events: none;\n}\n.ant-btn-lg {\n height: 40px;\n padding: 6.4px 15px;\n font-size: 16px;\n border-radius: 2px;\n}\n.ant-btn-sm {\n height: 24px;\n padding: 0px 7px;\n font-size: 14px;\n border-radius: 2px;\n}\n.ant-btn > a:only-child {\n color: currentcolor;\n}\n.ant-btn > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn:hover,\n.ant-btn:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: #fff;\n}\n.ant-btn:hover > a:only-child,\n.ant-btn:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn:hover > a:only-child::after,\n.ant-btn:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn:active {\n color: #096dd9;\n border-color: #096dd9;\n background: #fff;\n}\n.ant-btn:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn[disabled],\n.ant-btn[disabled]:hover,\n.ant-btn[disabled]:focus,\n.ant-btn[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn[disabled] > a:only-child,\n.ant-btn[disabled]:hover > a:only-child,\n.ant-btn[disabled]:focus > a:only-child,\n.ant-btn[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn[disabled] > a:only-child::after,\n.ant-btn[disabled]:hover > a:only-child::after,\n.ant-btn[disabled]:focus > a:only-child::after,\n.ant-btn[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn:hover,\n.ant-btn:focus,\n.ant-btn:active {\n text-decoration: none;\n background: #fff;\n}\n.ant-btn > span {\n display: inline-block;\n}\n.ant-btn-primary {\n color: #fff;\n border-color: #1890ff;\n background: #1890ff;\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\n}\n.ant-btn-primary > a:only-child {\n color: currentcolor;\n}\n.ant-btn-primary > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-primary:hover,\n.ant-btn-primary:focus {\n color: #fff;\n border-color: #40a9ff;\n background: #40a9ff;\n}\n.ant-btn-primary:hover > a:only-child,\n.ant-btn-primary:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-primary:hover > a:only-child::after,\n.ant-btn-primary:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-primary:active {\n color: #fff;\n border-color: #096dd9;\n background: #096dd9;\n}\n.ant-btn-primary:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-primary:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-primary[disabled],\n.ant-btn-primary[disabled]:hover,\n.ant-btn-primary[disabled]:focus,\n.ant-btn-primary[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-primary[disabled] > a:only-child,\n.ant-btn-primary[disabled]:hover > a:only-child,\n.ant-btn-primary[disabled]:focus > a:only-child,\n.ant-btn-primary[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-primary[disabled] > a:only-child::after,\n.ant-btn-primary[disabled]:hover > a:only-child::after,\n.ant-btn-primary[disabled]:focus > a:only-child::after,\n.ant-btn-primary[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child) {\n border-right-color: #40a9ff;\n border-left-color: #40a9ff;\n}\n.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled {\n border-color: #d9d9d9;\n}\n.ant-btn-group .ant-btn-primary:first-child:not(:last-child) {\n border-right-color: #40a9ff;\n}\n.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled] {\n border-right-color: #d9d9d9;\n}\n.ant-btn-group .ant-btn-primary:last-child:not(:first-child),\n.ant-btn-group .ant-btn-primary + .ant-btn-primary {\n border-left-color: #40a9ff;\n}\n.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],\n.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {\n border-left-color: #d9d9d9;\n}\n.ant-btn-ghost {\n color: rgba(0, 0, 0, 0.85);\n border-color: #d9d9d9;\n background: transparent;\n}\n.ant-btn-ghost > a:only-child {\n color: currentcolor;\n}\n.ant-btn-ghost > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-ghost:hover,\n.ant-btn-ghost:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-ghost:hover > a:only-child,\n.ant-btn-ghost:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-ghost:hover > a:only-child::after,\n.ant-btn-ghost:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-ghost:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-ghost:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-ghost:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-ghost[disabled],\n.ant-btn-ghost[disabled]:hover,\n.ant-btn-ghost[disabled]:focus,\n.ant-btn-ghost[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-ghost[disabled] > a:only-child,\n.ant-btn-ghost[disabled]:hover > a:only-child,\n.ant-btn-ghost[disabled]:focus > a:only-child,\n.ant-btn-ghost[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-ghost[disabled] > a:only-child::after,\n.ant-btn-ghost[disabled]:hover > a:only-child::after,\n.ant-btn-ghost[disabled]:focus > a:only-child::after,\n.ant-btn-ghost[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dashed {\n color: rgba(0, 0, 0, 0.85);\n border-color: #d9d9d9;\n background: #fff;\n border-style: dashed;\n}\n.ant-btn-dashed > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dashed > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dashed:hover,\n.ant-btn-dashed:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: #fff;\n}\n.ant-btn-dashed:hover > a:only-child,\n.ant-btn-dashed:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dashed:hover > a:only-child::after,\n.ant-btn-dashed:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dashed:active {\n color: #096dd9;\n border-color: #096dd9;\n background: #fff;\n}\n.ant-btn-dashed:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dashed:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dashed[disabled],\n.ant-btn-dashed[disabled]:hover,\n.ant-btn-dashed[disabled]:focus,\n.ant-btn-dashed[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dashed[disabled] > a:only-child,\n.ant-btn-dashed[disabled]:hover > a:only-child,\n.ant-btn-dashed[disabled]:focus > a:only-child,\n.ant-btn-dashed[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dashed[disabled] > a:only-child::after,\n.ant-btn-dashed[disabled]:hover > a:only-child::after,\n.ant-btn-dashed[disabled]:focus > a:only-child::after,\n.ant-btn-dashed[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-danger {\n color: #fff;\n border-color: #ff4d4f;\n background: #ff4d4f;\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\n}\n.ant-btn-danger > a:only-child {\n color: currentcolor;\n}\n.ant-btn-danger > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-danger:hover,\n.ant-btn-danger:focus {\n color: #fff;\n border-color: #ff7875;\n background: #ff7875;\n}\n.ant-btn-danger:hover > a:only-child,\n.ant-btn-danger:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-danger:hover > a:only-child::after,\n.ant-btn-danger:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-danger:active {\n color: #fff;\n border-color: #d9363e;\n background: #d9363e;\n}\n.ant-btn-danger:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-danger:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-danger[disabled],\n.ant-btn-danger[disabled]:hover,\n.ant-btn-danger[disabled]:focus,\n.ant-btn-danger[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-danger[disabled] > a:only-child,\n.ant-btn-danger[disabled]:hover > a:only-child,\n.ant-btn-danger[disabled]:focus > a:only-child,\n.ant-btn-danger[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-danger[disabled] > a:only-child::after,\n.ant-btn-danger[disabled]:hover > a:only-child::after,\n.ant-btn-danger[disabled]:focus > a:only-child::after,\n.ant-btn-danger[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link {\n color: #1890ff;\n border-color: transparent;\n background: transparent;\n box-shadow: none;\n}\n.ant-btn-link > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link:hover,\n.ant-btn-link:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-link:hover > a:only-child,\n.ant-btn-link:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link:hover > a:only-child::after,\n.ant-btn-link:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-link:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link[disabled],\n.ant-btn-link[disabled]:hover,\n.ant-btn-link[disabled]:focus,\n.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-link[disabled] > a:only-child,\n.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-link:hover {\n background: transparent;\n}\n.ant-btn-link:hover,\n.ant-btn-link:focus,\n.ant-btn-link:active {\n border-color: transparent;\n}\n.ant-btn-link[disabled],\n.ant-btn-link[disabled]:hover,\n.ant-btn-link[disabled]:focus,\n.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-link[disabled] > a:only-child,\n.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text {\n color: rgba(0, 0, 0, 0.85);\n border-color: transparent;\n background: transparent;\n box-shadow: none;\n}\n.ant-btn-text > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text:hover,\n.ant-btn-text:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-text:hover > a:only-child,\n.ant-btn-text:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text:hover > a:only-child::after,\n.ant-btn-text:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-text:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text[disabled],\n.ant-btn-text[disabled]:hover,\n.ant-btn-text[disabled]:focus,\n.ant-btn-text[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-text[disabled] > a:only-child,\n.ant-btn-text[disabled]:hover > a:only-child,\n.ant-btn-text[disabled]:focus > a:only-child,\n.ant-btn-text[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text[disabled] > a:only-child::after,\n.ant-btn-text[disabled]:hover > a:only-child::after,\n.ant-btn-text[disabled]:focus > a:only-child::after,\n.ant-btn-text[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-text:hover,\n.ant-btn-text:focus {\n color: rgba(0, 0, 0, 0.85);\n background: rgba(0, 0, 0, 0.018);\n border-color: transparent;\n}\n.ant-btn-text:active {\n color: rgba(0, 0, 0, 0.85);\n background: rgba(0, 0, 0, 0.028);\n border-color: transparent;\n}\n.ant-btn-text[disabled],\n.ant-btn-text[disabled]:hover,\n.ant-btn-text[disabled]:focus,\n.ant-btn-text[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-text[disabled] > a:only-child,\n.ant-btn-text[disabled]:hover > a:only-child,\n.ant-btn-text[disabled]:focus > a:only-child,\n.ant-btn-text[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-text[disabled] > a:only-child::after,\n.ant-btn-text[disabled]:hover > a:only-child::after,\n.ant-btn-text[disabled]:focus > a:only-child::after,\n.ant-btn-text[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous {\n color: #ff4d4f;\n border-color: #ff4d4f;\n background: #fff;\n}\n.ant-btn-dangerous > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous:hover,\n.ant-btn-dangerous:focus {\n color: #ff7875;\n border-color: #ff7875;\n background: #fff;\n}\n.ant-btn-dangerous:hover > a:only-child,\n.ant-btn-dangerous:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous:hover > a:only-child::after,\n.ant-btn-dangerous:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous:active {\n color: #d9363e;\n border-color: #d9363e;\n background: #fff;\n}\n.ant-btn-dangerous:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous[disabled],\n.ant-btn-dangerous[disabled]:hover,\n.ant-btn-dangerous[disabled]:focus,\n.ant-btn-dangerous[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous[disabled] > a:only-child,\n.ant-btn-dangerous[disabled]:hover > a:only-child,\n.ant-btn-dangerous[disabled]:focus > a:only-child,\n.ant-btn-dangerous[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous[disabled] > a:only-child::after,\n.ant-btn-dangerous[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-primary {\n color: #fff;\n border-color: #ff4d4f;\n background: #ff4d4f;\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);\n box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);\n}\n.ant-btn-dangerous.ant-btn-primary > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-primary > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-primary:hover,\n.ant-btn-dangerous.ant-btn-primary:focus {\n color: #fff;\n border-color: #ff7875;\n background: #ff7875;\n}\n.ant-btn-dangerous.ant-btn-primary:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-primary:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-primary:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-primary:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-primary:active {\n color: #fff;\n border-color: #d9363e;\n background: #d9363e;\n}\n.ant-btn-dangerous.ant-btn-primary:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-primary:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-primary[disabled],\n.ant-btn-dangerous.ant-btn-primary[disabled]:hover,\n.ant-btn-dangerous.ant-btn-primary[disabled]:focus,\n.ant-btn-dangerous.ant-btn-primary[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-primary[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-primary[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-primary[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-primary[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-primary[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-primary[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-primary[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-primary[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link {\n color: #ff4d4f;\n border-color: transparent;\n background: transparent;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-link > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link:hover,\n.ant-btn-dangerous.ant-btn-link:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-link:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-link:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-link:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link[disabled],\n.ant-btn-dangerous.ant-btn-link[disabled]:hover,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus,\n.ant-btn-dangerous.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link:hover,\n.ant-btn-dangerous.ant-btn-link:focus {\n color: #ff7875;\n border-color: transparent;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-link:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-link:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link:active {\n color: #d9363e;\n border-color: transparent;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-link:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-link[disabled],\n.ant-btn-dangerous.ant-btn-link[disabled]:hover,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus,\n.ant-btn-dangerous.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text {\n color: #ff4d4f;\n border-color: transparent;\n background: transparent;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-text > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text:hover,\n.ant-btn-dangerous.ant-btn-text:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-text:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-text:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text:active {\n color: #096dd9;\n border-color: #096dd9;\n background: transparent;\n}\n.ant-btn-dangerous.ant-btn-text:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text[disabled],\n.ant-btn-dangerous.ant-btn-text[disabled]:hover,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus,\n.ant-btn-dangerous.ant-btn-text[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text:hover,\n.ant-btn-dangerous.ant-btn-text:focus {\n color: #ff7875;\n border-color: transparent;\n background: rgba(0, 0, 0, 0.018);\n}\n.ant-btn-dangerous.ant-btn-text:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-text:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text:active {\n color: #d9363e;\n border-color: transparent;\n background: rgba(0, 0, 0, 0.028);\n}\n.ant-btn-dangerous.ant-btn-text:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-dangerous.ant-btn-text[disabled],\n.ant-btn-dangerous.ant-btn-text[disabled]:hover,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus,\n.ant-btn-dangerous.ant-btn-text[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child,\n.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-dangerous.ant-btn-text[disabled] > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:hover > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:focus > a:only-child::after,\n.ant-btn-dangerous.ant-btn-text[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-icon-only {\n width: 32px;\n height: 32px;\n padding: 2.4px 0;\n font-size: 16px;\n border-radius: 2px;\n vertical-align: -3px;\n}\n.ant-btn-icon-only > * {\n font-size: 16px;\n}\n.ant-btn-icon-only.ant-btn-lg {\n width: 40px;\n height: 40px;\n padding: 4.9px 0;\n font-size: 18px;\n border-radius: 2px;\n}\n.ant-btn-icon-only.ant-btn-lg > * {\n font-size: 18px;\n}\n.ant-btn-icon-only.ant-btn-sm {\n width: 24px;\n height: 24px;\n padding: 0px 0;\n font-size: 14px;\n border-radius: 2px;\n}\n.ant-btn-icon-only.ant-btn-sm > * {\n font-size: 14px;\n}\n.ant-btn-icon-only > .anticon {\n display: flex;\n justify-content: center;\n}\n.ant-btn-icon-only .anticon-loading {\n padding: 0 !important;\n}\na.ant-btn-icon-only {\n vertical-align: -1px;\n}\na.ant-btn-icon-only > .anticon {\n display: inline;\n}\n.ant-btn-round {\n height: 32px;\n padding: 4px 16px;\n font-size: 14px;\n border-radius: 32px;\n}\n.ant-btn-round.ant-btn-lg {\n height: 40px;\n padding: 6.4px 20px;\n font-size: 16px;\n border-radius: 40px;\n}\n.ant-btn-round.ant-btn-sm {\n height: 24px;\n padding: 0px 12px;\n font-size: 14px;\n border-radius: 24px;\n}\n.ant-btn-round.ant-btn-icon-only {\n width: auto;\n}\n.ant-btn-circle {\n min-width: 32px;\n padding-right: 0;\n padding-left: 0;\n text-align: center;\n border-radius: 50%;\n}\n.ant-btn-circle.ant-btn-lg {\n min-width: 40px;\n border-radius: 50%;\n}\n.ant-btn-circle.ant-btn-sm {\n min-width: 24px;\n border-radius: 50%;\n}\n.ant-btn::before {\n position: absolute;\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n z-index: 1;\n display: none;\n background: #fff;\n border-radius: inherit;\n opacity: 0.35;\n transition: opacity 0.2s;\n content: '';\n pointer-events: none;\n}\n.ant-btn .anticon {\n transition: margin-left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-btn .anticon.anticon-plus > svg,\n.ant-btn .anticon.anticon-minus > svg {\n shape-rendering: optimizespeed;\n}\n.ant-btn.ant-btn-loading {\n position: relative;\n cursor: default;\n}\n.ant-btn.ant-btn-loading::before {\n display: block;\n}\n.ant-btn > .ant-btn-loading-icon {\n transition: width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-btn > .ant-btn-loading-icon .anticon {\n padding-right: 8px;\n animation: none;\n}\n.ant-btn > .ant-btn-loading-icon .anticon svg {\n animation: loadingCircle 1s infinite linear;\n}\n.ant-btn-group {\n position: relative;\n display: inline-flex;\n}\n.ant-btn-group > .ant-btn,\n.ant-btn-group > span > .ant-btn {\n position: relative;\n}\n.ant-btn-group > .ant-btn:hover,\n.ant-btn-group > span > .ant-btn:hover,\n.ant-btn-group > .ant-btn:focus,\n.ant-btn-group > span > .ant-btn:focus,\n.ant-btn-group > .ant-btn:active,\n.ant-btn-group > span > .ant-btn:active {\n z-index: 2;\n}\n.ant-btn-group > .ant-btn[disabled],\n.ant-btn-group > span > .ant-btn[disabled] {\n z-index: 0;\n}\n.ant-btn-group .ant-btn-icon-only {\n font-size: 14px;\n}\n.ant-btn-group .ant-btn + .ant-btn,\n.ant-btn + .ant-btn-group,\n.ant-btn-group span + .ant-btn,\n.ant-btn-group .ant-btn + span,\n.ant-btn-group > span + span,\n.ant-btn-group + .ant-btn,\n.ant-btn-group + .ant-btn-group {\n margin-left: -1px;\n}\n.ant-btn-group .ant-btn-primary + .ant-btn:not(.ant-btn-primary):not([disabled]) {\n border-left-color: transparent;\n}\n.ant-btn-group .ant-btn {\n border-radius: 0;\n}\n.ant-btn-group > .ant-btn:first-child,\n.ant-btn-group > span:first-child > .ant-btn {\n margin-left: 0;\n}\n.ant-btn-group > .ant-btn:only-child {\n border-radius: 2px;\n}\n.ant-btn-group > span:only-child > .ant-btn {\n border-radius: 2px;\n}\n.ant-btn-group > .ant-btn:first-child:not(:last-child),\n.ant-btn-group > span:first-child:not(:last-child) > .ant-btn {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-btn-group > .ant-btn:last-child:not(:first-child),\n.ant-btn-group > span:last-child:not(:first-child) > .ant-btn {\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-btn-group-sm > .ant-btn:only-child {\n border-radius: 2px;\n}\n.ant-btn-group-sm > span:only-child > .ant-btn {\n border-radius: 2px;\n}\n.ant-btn-group-sm > .ant-btn:first-child:not(:last-child),\n.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-btn-group-sm > .ant-btn:last-child:not(:first-child),\n.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn {\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-btn-group > .ant-btn-group {\n float: left;\n}\n.ant-btn-group > .ant-btn-group:not(:first-child):not(:last-child) > .ant-btn {\n border-radius: 0;\n}\n.ant-btn-group > .ant-btn-group:first-child:not(:last-child) > .ant-btn:last-child {\n padding-right: 8px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-group > .ant-btn-group:last-child:not(:first-child) > .ant-btn:first-child {\n padding-left: 8px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-rtl.ant-btn-group .ant-btn + .ant-btn,\n.ant-btn-rtl.ant-btn + .ant-btn-group,\n.ant-btn-rtl.ant-btn-group span + .ant-btn,\n.ant-btn-rtl.ant-btn-group .ant-btn + span,\n.ant-btn-rtl.ant-btn-group > span + span,\n.ant-btn-rtl.ant-btn-group + .ant-btn,\n.ant-btn-rtl.ant-btn-group + .ant-btn-group,\n.ant-btn-group-rtl.ant-btn-group .ant-btn + .ant-btn,\n.ant-btn-group-rtl.ant-btn + .ant-btn-group,\n.ant-btn-group-rtl.ant-btn-group span + .ant-btn,\n.ant-btn-group-rtl.ant-btn-group .ant-btn + span,\n.ant-btn-group-rtl.ant-btn-group > span + span,\n.ant-btn-group-rtl.ant-btn-group + .ant-btn,\n.ant-btn-group-rtl.ant-btn-group + .ant-btn-group {\n margin-right: -1px;\n margin-left: auto;\n}\n.ant-btn-group.ant-btn-group-rtl {\n direction: rtl;\n}\n.ant-btn-group-rtl.ant-btn-group > .ant-btn:first-child:not(:last-child),\n.ant-btn-group-rtl.ant-btn-group > span:first-child:not(:last-child) > .ant-btn {\n border-radius: 0 2px 2px 0;\n}\n.ant-btn-group-rtl.ant-btn-group > .ant-btn:last-child:not(:first-child),\n.ant-btn-group-rtl.ant-btn-group > span:last-child:not(:first-child) > .ant-btn {\n border-radius: 2px 0 0 2px;\n}\n.ant-btn-group-rtl.ant-btn-group-sm > .ant-btn:first-child:not(:last-child),\n.ant-btn-group-rtl.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn {\n border-radius: 0 2px 2px 0;\n}\n.ant-btn-group-rtl.ant-btn-group-sm > .ant-btn:last-child:not(:first-child),\n.ant-btn-group-rtl.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn {\n border-radius: 2px 0 0 2px;\n}\n.ant-btn:focus > span,\n.ant-btn:active > span {\n position: relative;\n}\n.ant-btn > .anticon + span,\n.ant-btn > span + .anticon {\n margin-left: 8px;\n}\n.ant-btn.ant-btn-background-ghost {\n color: #fff;\n border-color: #fff;\n}\n.ant-btn.ant-btn-background-ghost,\n.ant-btn.ant-btn-background-ghost:hover,\n.ant-btn.ant-btn-background-ghost:active,\n.ant-btn.ant-btn-background-ghost:focus {\n background: transparent;\n}\n.ant-btn.ant-btn-background-ghost:hover,\n.ant-btn.ant-btn-background-ghost:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n}\n.ant-btn.ant-btn-background-ghost:active {\n color: #096dd9;\n border-color: #096dd9;\n}\n.ant-btn.ant-btn-background-ghost[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background: transparent;\n border-color: #d9d9d9;\n}\n.ant-btn-background-ghost.ant-btn-primary {\n color: #1890ff;\n border-color: #1890ff;\n text-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-primary > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-primary > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-primary:hover,\n.ant-btn-background-ghost.ant-btn-primary:focus {\n color: #40a9ff;\n border-color: #40a9ff;\n}\n.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-primary:active {\n color: #096dd9;\n border-color: #096dd9;\n}\n.ant-btn-background-ghost.ant-btn-primary:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-primary:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-primary[disabled],\n.ant-btn-background-ghost.ant-btn-primary[disabled]:hover,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-danger {\n color: #ff4d4f;\n border-color: #ff4d4f;\n text-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-danger > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-danger > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-danger:hover,\n.ant-btn-background-ghost.ant-btn-danger:focus {\n color: #ff7875;\n border-color: #ff7875;\n}\n.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-danger:active {\n color: #d9363e;\n border-color: #d9363e;\n}\n.ant-btn-background-ghost.ant-btn-danger:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-danger:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-danger[disabled],\n.ant-btn-background-ghost.ant-btn-danger[disabled]:hover,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous {\n color: #ff4d4f;\n border-color: #ff4d4f;\n text-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-dangerous > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous:hover,\n.ant-btn-background-ghost.ant-btn-dangerous:focus {\n color: #ff7875;\n border-color: #ff7875;\n}\n.ant-btn-background-ghost.ant-btn-dangerous:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous:active {\n color: #d9363e;\n border-color: #d9363e;\n}\n.ant-btn-background-ghost.ant-btn-dangerous:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous[disabled],\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-dangerous[disabled] > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous[disabled] > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link {\n color: #ff4d4f;\n border-color: transparent;\n text-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus {\n color: #ff7875;\n border-color: transparent;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active {\n color: #d9363e;\n border-color: transparent;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: #d9d9d9;\n background: #f5f5f5;\n text-shadow: none;\n box-shadow: none;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {\n color: currentcolor;\n}\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after,\n.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\n.ant-btn-two-chinese-chars::first-letter {\n letter-spacing: 0.34em;\n}\n.ant-btn-two-chinese-chars > *:not(.anticon) {\n margin-right: -0.34em;\n letter-spacing: 0.34em;\n}\n.ant-btn.ant-btn-block {\n width: 100%;\n}\n.ant-btn:empty {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n}\na.ant-btn {\n padding-top: 0.01px !important;\n line-height: 30px;\n}\na.ant-btn-disabled {\n cursor: not-allowed;\n}\na.ant-btn-disabled > * {\n pointer-events: none;\n}\na.ant-btn-disabled,\na.ant-btn-disabled:hover,\na.ant-btn-disabled:focus,\na.ant-btn-disabled:active {\n color: rgba(0, 0, 0, 0.25);\n border-color: transparent;\n background: transparent;\n text-shadow: none;\n box-shadow: none;\n}\na.ant-btn-disabled > a:only-child,\na.ant-btn-disabled:hover > a:only-child,\na.ant-btn-disabled:focus > a:only-child,\na.ant-btn-disabled:active > a:only-child {\n color: currentcolor;\n}\na.ant-btn-disabled > a:only-child::after,\na.ant-btn-disabled:hover > a:only-child::after,\na.ant-btn-disabled:focus > a:only-child::after,\na.ant-btn-disabled:active > a:only-child::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: transparent;\n content: '';\n}\na.ant-btn-lg {\n line-height: 38px;\n}\na.ant-btn-sm {\n line-height: 22px;\n}\n.ant-btn-compact-item:not(.ant-btn-compact-last-item):not(.ant-btn-compact-item-rtl) {\n margin-right: -1px;\n}\n.ant-btn-compact-item:not(.ant-btn-compact-last-item).ant-btn-compact-item-rtl {\n margin-left: -1px;\n}\n.ant-btn-compact-item:hover,\n.ant-btn-compact-item:focus,\n.ant-btn-compact-item:active {\n z-index: 2;\n}\n.ant-btn-compact-item[disabled] {\n z-index: 0;\n}\n.ant-btn-compact-item:not(.ant-btn-compact-first-item):not(.ant-btn-compact-last-item).ant-btn {\n border-radius: 0;\n}\n.ant-btn-compact-item.ant-btn.ant-btn-compact-first-item:not(.ant-btn-compact-last-item):not(.ant-btn-compact-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-compact-item.ant-btn.ant-btn-compact-last-item:not(.ant-btn-compact-first-item):not(.ant-btn-compact-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-item.ant-btn.ant-btn-compact-item-rtl.ant-btn-compact-first-item:not(.ant-btn-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-item.ant-btn.ant-btn-compact-item-rtl.ant-btn-compact-last-item:not(.ant-btn-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-icon-only.ant-btn-compact-item {\n flex: none;\n}\n.ant-btn-compact-item.ant-btn-primary:not([disabled]) + .ant-btn-compact-item.ant-btn-primary:not([disabled]) {\n position: relative;\n}\n.ant-btn-compact-item.ant-btn-primary:not([disabled]) + .ant-btn-compact-item.ant-btn-primary:not([disabled])::after {\n position: absolute;\n top: -1px;\n left: -1px;\n display: inline-block;\n width: 1px;\n height: calc(100% + 1px * 2);\n background-color: #40a9ff;\n content: ' ';\n}\n.ant-btn-compact-item-rtl.ant-btn-compact-first-item.ant-btn-compact-item-rtl:not(.ant-btn-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-item-rtl.ant-btn-compact-last-item.ant-btn-compact-item-rtl:not(.ant-btn-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-compact-item-rtl.ant-btn-sm.ant-btn-compact-first-item.ant-btn-compact-item-rtl.ant-btn-sm:not(.ant-btn-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-item-rtl.ant-btn-sm.ant-btn-compact-last-item.ant-btn-compact-item-rtl.ant-btn-sm:not(.ant-btn-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-btn-compact-item-rtl.ant-btn-primary:not([disabled]) + .ant-btn-compact-item-rtl.ant-btn-primary:not([disabled])::after {\n right: -1px;\n}\n.ant-btn-compact-vertical-item:not(.ant-btn-compact-vertical-last-item) {\n margin-bottom: -1px;\n}\n.ant-btn-compact-vertical-item:hover,\n.ant-btn-compact-vertical-item:focus,\n.ant-btn-compact-vertical-item:active {\n z-index: 2;\n}\n.ant-btn-compact-vertical-item[disabled] {\n z-index: 0;\n}\n.ant-btn-compact-vertical-item:not(.ant-btn-compact-vertical-first-item):not(.ant-btn-compact-vertical-last-item) {\n border-radius: 0;\n}\n.ant-btn-compact-vertical-item.ant-btn-compact-vertical-first-item:not(.ant-btn-compact-vertical-last-item) {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-btn-compact-vertical-item.ant-btn-compact-vertical-last-item:not(.ant-btn-compact-vertical-first-item) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]) + .ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]) {\n position: relative;\n}\n.ant-btn-compact-vertical-item.ant-btn-primary:not([disabled]) + .ant-btn-compact-vertical-item.ant-btn-primary:not([disabled])::after {\n position: absolute;\n top: -1px;\n left: -1px;\n display: inline-block;\n width: calc(100% + 1px * 2);\n height: 1px;\n background-color: #40a9ff;\n content: ' ';\n}\n.ant-btn-rtl {\n direction: rtl;\n}\n.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child),\n.ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary {\n border-right-color: #40a9ff;\n border-left-color: #d9d9d9;\n}\n.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled],\n.ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {\n border-right-color: #d9d9d9;\n border-left-color: #40a9ff;\n}\n.ant-btn-rtl.ant-btn > .ant-btn-loading-icon .anticon {\n padding-right: 0;\n padding-left: 8px;\n}\n.ant-btn-rtl.ant-btn > .anticon + span,\n.ant-btn-rtl.ant-btn > span + .anticon {\n margin-right: 8px;\n margin-left: 0;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-popover {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1030;\n max-width: 100vw;\n font-weight: normal;\n white-space: normal;\n text-align: left;\n cursor: auto;\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text;\n}\n.ant-popover-content {\n position: relative;\n}\n.ant-popover::after {\n position: absolute;\n background: rgba(255, 255, 255, 0.01);\n content: '';\n}\n.ant-popover-hidden {\n display: none;\n}\n.ant-popover-placement-top,\n.ant-popover-placement-topLeft,\n.ant-popover-placement-topRight {\n padding-bottom: 15.3137085px;\n}\n.ant-popover-placement-right,\n.ant-popover-placement-rightTop,\n.ant-popover-placement-rightBottom {\n padding-left: 15.3137085px;\n}\n.ant-popover-placement-bottom,\n.ant-popover-placement-bottomLeft,\n.ant-popover-placement-bottomRight {\n padding-top: 15.3137085px;\n}\n.ant-popover-placement-left,\n.ant-popover-placement-leftTop,\n.ant-popover-placement-leftBottom {\n padding-right: 15.3137085px;\n}\n.ant-popover-inner {\n background-color: #fff;\n background-clip: padding-box;\n border-radius: 2px;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .ant-popover {\n /* IE10+ */\n }\n .ant-popover-inner {\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n }\n}\n.ant-popover-title {\n min-width: 177px;\n min-height: 32px;\n margin: 0;\n padding: 5px 16px 4px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: 500;\n border-bottom: 1px solid #f0f0f0;\n}\n.ant-popover-inner-content {\n width: -moz-max-content;\n width: max-content;\n max-width: 100%;\n padding: 12px 16px;\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-popover-message {\n display: flex;\n padding: 4px 0 12px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n}\n.ant-popover-message-icon {\n display: inline-block;\n margin-right: 8px;\n color: #faad14;\n font-size: 14px;\n}\n.ant-popover-buttons {\n margin-bottom: 4px;\n text-align: right;\n}\n.ant-popover-buttons button:not(:first-child) {\n margin-left: 8px;\n}\n.ant-popover-arrow {\n position: absolute;\n display: block;\n width: 22px;\n height: 22px;\n overflow: hidden;\n background: transparent;\n pointer-events: none;\n}\n.ant-popover-arrow-content {\n --antd-arrow-background-color: #fff;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: block;\n width: 11.3137085px;\n height: 11.3137085px;\n margin: auto;\n content: '';\n pointer-events: auto;\n border-radius: 0 0 2px;\n pointer-events: none;\n}\n.ant-popover-arrow-content::before {\n position: absolute;\n top: -11.3137085px;\n left: -11.3137085px;\n width: 33.9411255px;\n height: 33.9411255px;\n background: var(--antd-arrow-background-color);\n background-repeat: no-repeat;\n background-position: -10px -10px;\n content: '';\n -webkit-clip-path: inset(33% 33%);\n clip-path: inset(33% 33%);\n -webkit-clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n clip-path: path('M 9.849242404917499 24.091883092036785 A 5 5 0 0 1 13.384776310850237 22.627416997969522 L 20.627416997969522 22.627416997969522 A 2 2 0 0 0 22.627416997969522 20.627416997969522 L 22.627416997969522 13.384776310850237 A 5 5 0 0 1 24.091883092036785 9.849242404917499 L 23.091883092036785 9.849242404917499 L 9.849242404917499 23.091883092036785 Z');\n}\n.ant-popover-placement-top .ant-popover-arrow,\n.ant-popover-placement-topLeft .ant-popover-arrow,\n.ant-popover-placement-topRight .ant-popover-arrow {\n bottom: 0;\n transform: translateY(100%);\n}\n.ant-popover-placement-top .ant-popover-arrow-content,\n.ant-popover-placement-topLeft .ant-popover-arrow-content,\n.ant-popover-placement-topRight .ant-popover-arrow-content {\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateY(-11px) rotate(45deg);\n}\n.ant-popover-placement-top .ant-popover-arrow {\n left: 50%;\n transform: translateY(100%) translateX(-50%);\n}\n.ant-popover-placement-topLeft .ant-popover-arrow {\n left: 16px;\n}\n.ant-popover-placement-topRight .ant-popover-arrow {\n right: 16px;\n}\n.ant-popover-placement-right .ant-popover-arrow,\n.ant-popover-placement-rightTop .ant-popover-arrow,\n.ant-popover-placement-rightBottom .ant-popover-arrow {\n left: 0;\n transform: translateX(-100%);\n}\n.ant-popover-placement-right .ant-popover-arrow-content,\n.ant-popover-placement-rightTop .ant-popover-arrow-content,\n.ant-popover-placement-rightBottom .ant-popover-arrow-content {\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateX(11px) rotate(135deg);\n}\n.ant-popover-placement-right .ant-popover-arrow {\n top: 50%;\n transform: translateX(-100%) translateY(-50%);\n}\n.ant-popover-placement-rightTop .ant-popover-arrow {\n top: 12px;\n}\n.ant-popover-placement-rightBottom .ant-popover-arrow {\n bottom: 12px;\n}\n.ant-popover-placement-bottom .ant-popover-arrow,\n.ant-popover-placement-bottomLeft .ant-popover-arrow,\n.ant-popover-placement-bottomRight .ant-popover-arrow {\n top: 0;\n transform: translateY(-100%);\n}\n.ant-popover-placement-bottom .ant-popover-arrow-content,\n.ant-popover-placement-bottomLeft .ant-popover-arrow-content,\n.ant-popover-placement-bottomRight .ant-popover-arrow-content {\n box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.06);\n transform: translateY(11px) rotate(-135deg);\n}\n.ant-popover-placement-bottom .ant-popover-arrow {\n left: 50%;\n transform: translateY(-100%) translateX(-50%);\n}\n.ant-popover-placement-bottomLeft .ant-popover-arrow {\n left: 16px;\n}\n.ant-popover-placement-bottomRight .ant-popover-arrow {\n right: 16px;\n}\n.ant-popover-placement-left .ant-popover-arrow,\n.ant-popover-placement-leftTop .ant-popover-arrow,\n.ant-popover-placement-leftBottom .ant-popover-arrow {\n right: 0;\n transform: translateX(100%);\n}\n.ant-popover-placement-left .ant-popover-arrow-content,\n.ant-popover-placement-leftTop .ant-popover-arrow-content,\n.ant-popover-placement-leftBottom .ant-popover-arrow-content {\n box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);\n transform: translateX(-11px) rotate(-45deg);\n}\n.ant-popover-placement-left .ant-popover-arrow {\n top: 50%;\n transform: translateX(100%) translateY(-50%);\n}\n.ant-popover-placement-leftTop .ant-popover-arrow {\n top: 12px;\n}\n.ant-popover-placement-leftBottom .ant-popover-arrow {\n bottom: 12px;\n}\n.ant-popover-pink .ant-popover-inner {\n background-color: #eb2f96;\n}\n.ant-popover-pink .ant-popover-arrow-content {\n background-color: #eb2f96;\n}\n.ant-popover-magenta .ant-popover-inner {\n background-color: #eb2f96;\n}\n.ant-popover-magenta .ant-popover-arrow-content {\n background-color: #eb2f96;\n}\n.ant-popover-red .ant-popover-inner {\n background-color: #f5222d;\n}\n.ant-popover-red .ant-popover-arrow-content {\n background-color: #f5222d;\n}\n.ant-popover-volcano .ant-popover-inner {\n background-color: #fa541c;\n}\n.ant-popover-volcano .ant-popover-arrow-content {\n background-color: #fa541c;\n}\n.ant-popover-orange .ant-popover-inner {\n background-color: #fa8c16;\n}\n.ant-popover-orange .ant-popover-arrow-content {\n background-color: #fa8c16;\n}\n.ant-popover-yellow .ant-popover-inner {\n background-color: #fadb14;\n}\n.ant-popover-yellow .ant-popover-arrow-content {\n background-color: #fadb14;\n}\n.ant-popover-gold .ant-popover-inner {\n background-color: #faad14;\n}\n.ant-popover-gold .ant-popover-arrow-content {\n background-color: #faad14;\n}\n.ant-popover-cyan .ant-popover-inner {\n background-color: #13c2c2;\n}\n.ant-popover-cyan .ant-popover-arrow-content {\n background-color: #13c2c2;\n}\n.ant-popover-lime .ant-popover-inner {\n background-color: #a0d911;\n}\n.ant-popover-lime .ant-popover-arrow-content {\n background-color: #a0d911;\n}\n.ant-popover-green .ant-popover-inner {\n background-color: #52c41a;\n}\n.ant-popover-green .ant-popover-arrow-content {\n background-color: #52c41a;\n}\n.ant-popover-blue .ant-popover-inner {\n background-color: #1890ff;\n}\n.ant-popover-blue .ant-popover-arrow-content {\n background-color: #1890ff;\n}\n.ant-popover-geekblue .ant-popover-inner {\n background-color: #2f54eb;\n}\n.ant-popover-geekblue .ant-popover-arrow-content {\n background-color: #2f54eb;\n}\n.ant-popover-purple .ant-popover-inner {\n background-color: #722ed1;\n}\n.ant-popover-purple .ant-popover-arrow-content {\n background-color: #722ed1;\n}\n.ant-popover-rtl {\n direction: rtl;\n text-align: right;\n}\n.ant-popover-rtl .ant-popover-message-icon {\n margin-right: 0;\n margin-left: 8px;\n}\n.ant-popover-rtl .ant-popover-message-title {\n padding-left: 16px;\n}\n.ant-popover-rtl .ant-popover-buttons {\n text-align: left;\n}\n.ant-popover-rtl .ant-popover-buttons button {\n margin-right: 8px;\n margin-left: 0;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-popconfirm {\n z-index: 1060;\n}\n","/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-input-affix-wrapper {\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n display: inline-flex;\n}\n.ant-input-affix-wrapper::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-input-affix-wrapper:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-affix-wrapper::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input-affix-wrapper:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-affix-wrapper:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-input-affix-wrapper:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input-affix-wrapper:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-input-rtl .ant-input-affix-wrapper:hover {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input-affix-wrapper:focus,\n.ant-input-affix-wrapper-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-rtl .ant-input-affix-wrapper:focus,\n.ant-input-rtl .ant-input-affix-wrapper-focused {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input-affix-wrapper-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-affix-wrapper-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-affix-wrapper[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-affix-wrapper[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-affix-wrapper-borderless,\n.ant-input-affix-wrapper-borderless:hover,\n.ant-input-affix-wrapper-borderless:focus,\n.ant-input-affix-wrapper-borderless-focused,\n.ant-input-affix-wrapper-borderless-disabled,\n.ant-input-affix-wrapper-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-input-affix-wrapper {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-input-affix-wrapper-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-affix-wrapper-sm {\n padding: 0px 7px;\n}\n.ant-input-affix-wrapper-rtl {\n direction: rtl;\n}\n.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n z-index: 1;\n}\n.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input-search-with-button .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover {\n z-index: 0;\n}\n.ant-input-affix-wrapper-focused,\n.ant-input-affix-wrapper:focus {\n z-index: 1;\n}\n.ant-input-affix-wrapper-disabled .ant-input[disabled] {\n background: rgba(255, 255, 255, 0);\n}\n.ant-input-affix-wrapper > .ant-input {\n font-size: inherit;\n border: none;\n outline: none;\n}\n.ant-input-affix-wrapper > .ant-input:focus {\n box-shadow: none !important;\n}\n.ant-input-affix-wrapper > .ant-input:not(textarea) {\n padding: 0;\n}\n.ant-input-affix-wrapper::before {\n display: inline-block;\n width: 0;\n visibility: hidden;\n content: '\\a0';\n}\n.ant-input-prefix,\n.ant-input-suffix {\n display: flex;\n flex: none;\n align-items: center;\n}\n.ant-input-prefix > *:not(:last-child),\n.ant-input-suffix > *:not(:last-child) {\n margin-right: 8px;\n}\n.ant-input-show-count-suffix {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-input-show-count-has-suffix {\n margin-right: 2px;\n}\n.ant-input-prefix {\n margin-right: 4px;\n}\n.ant-input-suffix {\n margin-left: 4px;\n}\n.anticon.ant-input-clear-icon,\n.ant-input-clear-icon {\n margin: 0;\n color: rgba(0, 0, 0, 0.25);\n font-size: 12px;\n vertical-align: -1px;\n cursor: pointer;\n transition: color 0.3s;\n}\n.anticon.ant-input-clear-icon:hover,\n.ant-input-clear-icon:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.anticon.ant-input-clear-icon:active,\n.ant-input-clear-icon:active {\n color: rgba(0, 0, 0, 0.85);\n}\n.anticon.ant-input-clear-icon-hidden,\n.ant-input-clear-icon-hidden {\n visibility: hidden;\n}\n.anticon.ant-input-clear-icon-has-suffix,\n.ant-input-clear-icon-has-suffix {\n margin: 0 4px;\n}\n.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn {\n padding: 0;\n}\n.ant-input-affix-wrapper.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon {\n position: absolute;\n top: 8px;\n right: 8px;\n z-index: 1;\n}\n.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input,\n.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover {\n background: #fff;\n border-color: #ff4d4f;\n}\n.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus,\n.ant-input-status-error:not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-status-error .ant-input-prefix {\n color: #ff4d4f;\n}\n.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input,\n.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover {\n background: #fff;\n border-color: #faad14;\n}\n.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus,\n.ant-input-status-warning:not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-status-warning .ant-input-prefix {\n color: #faad14;\n}\n.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,\n.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover {\n background: #fff;\n border-color: #ff4d4f;\n}\n.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus,\n.ant-input-affix-wrapper-status-error:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused {\n border-color: #ff7875;\n box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-affix-wrapper-status-error .ant-input-prefix {\n color: #ff4d4f;\n}\n.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,\n.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover {\n background: #fff;\n border-color: #faad14;\n}\n.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus,\n.ant-input-affix-wrapper-status-warning:not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused {\n border-color: #ffc53d;\n box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-affix-wrapper-status-warning .ant-input-prefix {\n color: #faad14;\n}\n.ant-input-textarea-status-error.ant-input-textarea-has-feedback .ant-input,\n.ant-input-textarea-status-warning.ant-input-textarea-has-feedback .ant-input,\n.ant-input-textarea-status-success.ant-input-textarea-has-feedback .ant-input,\n.ant-input-textarea-status-validating.ant-input-textarea-has-feedback .ant-input {\n padding-right: 24px;\n}\n.ant-input-group-wrapper-status-error .ant-input-group-addon {\n color: #ff4d4f;\n border-color: #ff4d4f;\n}\n.ant-input-group-wrapper-status-warning .ant-input-group-addon {\n color: #faad14;\n border-color: #faad14;\n}\n.ant-input {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n font-variant: tabular-nums;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: inline-block;\n width: 100%;\n min-width: 0;\n padding: 4px 11px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n line-height: 1.5715;\n background-color: #fff;\n background-image: none;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n}\n.ant-input::-moz-placeholder {\n color: #bfbfbf;\n -moz-user-select: none;\n user-select: none;\n}\n.ant-input:-ms-input-placeholder {\n color: #bfbfbf;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input::placeholder {\n color: #bfbfbf;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ant-input:-moz-placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input:-ms-input-placeholder {\n text-overflow: ellipsis;\n}\n.ant-input:placeholder-shown {\n text-overflow: ellipsis;\n}\n.ant-input:hover {\n border-color: #40a9ff;\n border-right-width: 1px;\n}\n.ant-input-rtl .ant-input:hover {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input:focus,\n.ant-input-focused {\n border-color: #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n border-right-width: 1px;\n outline: 0;\n}\n.ant-input-rtl .ant-input:focus,\n.ant-input-rtl .ant-input-focused {\n border-right-width: 0;\n border-left-width: 1px !important;\n}\n.ant-input-disabled {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input-disabled:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input[disabled] {\n color: rgba(0, 0, 0, 0.25);\n background-color: #f5f5f5;\n border-color: #d9d9d9;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 1;\n}\n.ant-input[disabled]:hover {\n border-color: #d9d9d9;\n border-right-width: 1px;\n}\n.ant-input-borderless,\n.ant-input-borderless:hover,\n.ant-input-borderless:focus,\n.ant-input-borderless-focused,\n.ant-input-borderless-disabled,\n.ant-input-borderless[disabled] {\n background-color: transparent;\n border: none;\n box-shadow: none;\n}\ntextarea.ant-input {\n max-width: 100%;\n height: auto;\n min-height: 32px;\n line-height: 1.5715;\n vertical-align: bottom;\n transition: all 0.3s, height 0s;\n}\n.ant-input-lg {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-sm {\n padding: 0px 7px;\n}\n.ant-input-rtl {\n direction: rtl;\n}\n.ant-input-group {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.85);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n display: table;\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n}\n.ant-input-group[class*='col-'] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.ant-input-group > [class*='col-'] {\n padding-right: 8px;\n}\n.ant-input-group > [class*='col-']:last-child {\n padding-right: 0;\n}\n.ant-input-group-addon,\n.ant-input-group-wrap,\n.ant-input-group > .ant-input {\n display: table-cell;\n}\n.ant-input-group-addon:not(:first-child):not(:last-child),\n.ant-input-group-wrap:not(:first-child):not(:last-child),\n.ant-input-group > .ant-input:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.ant-input-group-addon,\n.ant-input-group-wrap {\n width: 1px;\n white-space: nowrap;\n vertical-align: middle;\n}\n.ant-input-group-wrap > * {\n display: block !important;\n}\n.ant-input-group .ant-input {\n float: left;\n width: 100%;\n margin-bottom: 0;\n text-align: inherit;\n}\n.ant-input-group .ant-input:focus {\n z-index: 1;\n border-right-width: 1px;\n}\n.ant-input-group .ant-input:hover {\n z-index: 1;\n border-right-width: 1px;\n}\n.ant-input-search-with-button .ant-input-group .ant-input:hover {\n z-index: 0;\n}\n.ant-input-group-addon {\n position: relative;\n padding: 0 11px;\n color: rgba(0, 0, 0, 0.85);\n font-weight: normal;\n font-size: 14px;\n text-align: center;\n background-color: #fafafa;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n transition: all 0.3s;\n}\n.ant-input-group-addon .ant-select {\n margin: -5px -11px;\n}\n.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {\n background-color: inherit;\n border: 1px solid transparent;\n box-shadow: none;\n}\n.ant-input-group-addon .ant-select-open .ant-select-selector,\n.ant-input-group-addon .ant-select-focused .ant-select-selector {\n color: #1890ff;\n}\n.ant-input-group-addon .ant-cascader-picker {\n margin: -9px -12px;\n background-color: transparent;\n}\n.ant-input-group-addon .ant-cascader-picker .ant-cascader-input {\n text-align: left;\n border: 0;\n box-shadow: none;\n}\n.ant-input-group > .ant-input:first-child,\n.ant-input-group-addon:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-group > .ant-input:first-child .ant-select .ant-select-selector,\n.ant-input-group-addon:first-child .ant-select .ant-select-selector {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-group > .ant-input-affix-wrapper:not(:first-child) .ant-input {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-group > .ant-input-affix-wrapper:not(:last-child) .ant-input {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-group-addon:first-child {\n border-right: 0;\n}\n.ant-input-group-addon:last-child {\n border-left: 0;\n}\n.ant-input-group > .ant-input:last-child,\n.ant-input-group-addon:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-group > .ant-input:last-child .ant-select .ant-select-selector,\n.ant-input-group-addon:last-child .ant-select .ant-select-selector {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-group-lg .ant-input,\n.ant-input-group-lg > .ant-input-group-addon {\n padding: 6.5px 11px;\n font-size: 16px;\n}\n.ant-input-group-sm .ant-input,\n.ant-input-group-sm > .ant-input-group-addon {\n padding: 0px 7px;\n}\n.ant-input-group-lg .ant-select-single .ant-select-selector {\n height: 40px;\n}\n.ant-input-group-sm .ant-select-single .ant-select-selector {\n height: 24px;\n}\n.ant-input-group .ant-input-affix-wrapper:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child) {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-input-group .ant-input-affix-wrapper:not(:first-child),\n.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-group.ant-input-group-compact {\n display: block;\n}\n.ant-input-group.ant-input-group-compact::before {\n display: table;\n content: '';\n}\n.ant-input-group.ant-input-group-compact::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),\n.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),\n.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child) {\n border-right-width: 1px;\n}\n.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,\n.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,\n.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):hover {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,\n.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,\n.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):focus {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > * {\n display: inline-block;\n float: none;\n vertical-align: top;\n border-radius: 0;\n}\n.ant-input-group.ant-input-group-compact > .ant-input-affix-wrapper,\n.ant-input-group.ant-input-group-compact > .ant-input-number-affix-wrapper,\n.ant-input-group.ant-input-group-compact > .ant-picker-range {\n display: inline-flex;\n}\n.ant-input-group.ant-input-group-compact > *:not(:last-child) {\n margin-right: -1px;\n border-right-width: 1px;\n}\n.ant-input-group.ant-input-group-compact .ant-input {\n float: none;\n}\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector,\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input,\n.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input {\n border-right-width: 1px;\n border-radius: 0;\n}\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector:hover,\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover,\n.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:hover {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selector:focus,\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus,\n.ant-input-group.ant-input-group-compact > .ant-input-group-wrapper .ant-input:focus {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > .ant-select-focused {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-arrow {\n z-index: 1;\n}\n.ant-input-group.ant-input-group-compact > *:first-child,\n.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector,\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.ant-input-group.ant-input-group-compact > *:last-child,\n.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input,\n.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input {\n border-right-width: 1px;\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input {\n vertical-align: top;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper {\n margin-left: -1px;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper + .ant-input-group-wrapper .ant-input-affix-wrapper {\n border-radius: 0;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input-group-addon > .ant-input-search-button {\n border-radius: 0;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group > .ant-input-rtl:first-child,\n.ant-input-group-rtl .ant-input-group-addon:first-child {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-group-rtl .ant-input-group-addon:first-child {\n border-right: 1px solid #d9d9d9;\n border-left: 0;\n}\n.ant-input-group-rtl .ant-input-group-addon:last-child {\n border-right: 0;\n border-left: 1px solid #d9d9d9;\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group-rtl.ant-input-group > .ant-input:last-child,\n.ant-input-group-rtl.ant-input-group-addon:last-child {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child) {\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child) {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:not(:last-child) {\n margin-right: 0;\n margin-left: -1px;\n border-left-width: 1px;\n}\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:first-child,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:last-child,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input,\n.ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input {\n border-left-width: 1px;\n border-radius: 2px 0 0 2px;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl + .ant-input-group-wrapper-rtl {\n margin-right: -1px;\n margin-left: 0;\n}\n.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search > .ant-input-group > .ant-input {\n border-radius: 0 2px 2px 0;\n}\n.ant-input-group-wrapper {\n display: inline-block;\n width: 100%;\n text-align: start;\n vertical-align: top;\n}\n.ant-input-password-icon.anticon {\n color: rgba(0, 0, 0, 0.45);\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-input-password-icon.anticon:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-input[type='color'] {\n height: 32px;\n}\n.ant-input[type='color'].ant-input-lg {\n height: 40px;\n}\n.ant-input[type='color'].ant-input-sm {\n height: 24px;\n padding-top: 3px;\n padding-bottom: 3px;\n}\n.ant-input-textarea-show-count > .ant-input {\n height: 100%;\n}\n.ant-input-textarea-show-count::after {\n float: right;\n color: rgba(0, 0, 0, 0.45);\n white-space: nowrap;\n content: attr(data-count);\n pointer-events: none;\n}\n.ant-input-textarea-show-count.ant-input-textarea-in-form-item::after {\n margin-bottom: -22px;\n}\n.ant-input-textarea-suffix {\n position: absolute;\n top: 0;\n right: 11px;\n bottom: 0;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: auto;\n}\n.ant-input-compact-item:not(.ant-input-compact-last-item):not(.ant-input-compact-item-rtl) {\n margin-right: -1px;\n}\n.ant-input-compact-item:not(.ant-input-compact-last-item).ant-input-compact-item-rtl {\n margin-left: -1px;\n}\n.ant-input-compact-item:hover,\n.ant-input-compact-item:focus,\n.ant-input-compact-item:active {\n z-index: 2;\n}\n.ant-input-compact-item[disabled] {\n z-index: 0;\n}\n.ant-input-compact-item:not(.ant-input-compact-first-item):not(.ant-input-compact-last-item).ant-input {\n border-radius: 0;\n}\n.ant-input-compact-item.ant-input.ant-input-compact-first-item:not(.ant-input-compact-last-item):not(.ant-input-compact-item-rtl) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-compact-item.ant-input.ant-input-compact-last-item:not(.ant-input-compact-first-item):not(.ant-input-compact-item-rtl) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-compact-item.ant-input.ant-input-compact-item-rtl.ant-input-compact-first-item:not(.ant-input-compact-last-item) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.ant-input-compact-item.ant-input.ant-input-compact-item-rtl.ant-input-compact-last-item:not(.ant-input-compact-first-item) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.ant-input-search .ant-input:hover,\n.ant-input-search .ant-input:focus {\n border-color: #40a9ff;\n}\n.ant-input-search .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),\n.ant-input-search .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary) {\n border-left-color: #40a9ff;\n}\n.ant-input-search .ant-input-affix-wrapper {\n border-radius: 0;\n}\n.ant-input-search .ant-input-lg {\n line-height: 1.5713;\n}\n.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child {\n left: -1px;\n padding: 0;\n border: 0;\n}\n.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button {\n padding-top: 0;\n padding-bottom: 0;\n border-radius: 0 2px 2px 0;\n}\n.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary) {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading::before {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.ant-input-search-button {\n height: 32px;\n}\n.ant-input-search-button:hover,\n.ant-input-search-button:focus {\n z-index: 1;\n}\n.ant-input-search-large .ant-input-search-button {\n height: 40px;\n}\n.ant-input-search-small .ant-input-search-button {\n height: 24px;\n}\n.ant-input-search.ant-input-compact-item:not(.ant-input-compact-item-rtl):not(.ant-input-compact-last-item) .ant-input-group-addon .ant-input-search-button {\n margin-right: -1px;\n border-radius: 0;\n}\n.ant-input-search.ant-input-compact-item:not(.ant-input-compact-first-item) .ant-input,\n.ant-input-search.ant-input-compact-item:not(.ant-input-compact-first-item) .ant-input-affix-wrapper {\n border-radius: 0;\n}\n.ant-input-search.ant-input-compact-item > .ant-input-group-addon .ant-input-search-button:hover,\n.ant-input-search.ant-input-compact-item > .ant-input:hover,\n.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:hover,\n.ant-input-search.ant-input-compact-item > .ant-input-group-addon .ant-input-search-button:focus,\n.ant-input-search.ant-input-compact-item > .ant-input:focus,\n.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:focus,\n.ant-input-search.ant-input-compact-item > .ant-input-group-addon .ant-input-search-button:active,\n.ant-input-search.ant-input-compact-item > .ant-input:active,\n.ant-input-search.ant-input-compact-item .ant-input-affix-wrapper:active {\n z-index: 2;\n}\n.ant-input-search.ant-input-compact-item > .ant-input-affix-wrapper-focused {\n z-index: 2;\n}\n.ant-input-search.ant-input-compact-item-rtl:not(.ant-input-compact-last-item) .ant-input-group-addon:last-child .ant-input-search-button {\n margin-left: -1px;\n border-radius: 0;\n}\n.ant-input-group-wrapper-rtl {\n direction: rtl;\n}\n.ant-input-group-rtl {\n direction: rtl;\n}\n.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl > input.ant-input {\n border: none;\n outline: none;\n}\n.ant-input-affix-wrapper-rtl .ant-input-prefix {\n margin: 0 0 0 4px;\n}\n.ant-input-affix-wrapper-rtl .ant-input-suffix {\n margin: 0 4px 0 0;\n}\n.ant-input-textarea-rtl {\n direction: rtl;\n}\n.ant-input-textarea-rtl.ant-input-textarea-show-count::after {\n text-align: left;\n}\n.ant-input-affix-wrapper-rtl .ant-input-clear-icon-has-suffix {\n margin-right: 0;\n margin-left: 4px;\n}\n.ant-input-affix-wrapper-rtl .ant-input-clear-icon {\n right: auto;\n left: 8px;\n}\n.ant-input-search-rtl {\n direction: rtl;\n}\n.ant-input-search-rtl .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),\n.ant-input-search-rtl .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary) {\n border-left-color: #d9d9d9;\n}\n.ant-input-search-rtl .ant-input:hover + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary):hover,\n.ant-input-search-rtl .ant-input:focus + .ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary):hover {\n border-left-color: #40a9ff;\n}\n.ant-input-search-rtl > .ant-input-group > .ant-input-affix-wrapper:hover,\n.ant-input-search-rtl > .ant-input-group > .ant-input-affix-wrapper-focused {\n border-right-color: #40a9ff;\n}\n.ant-input-search-rtl > .ant-input-group > .ant-input-group-addon:last-child {\n right: -1px;\n left: auto;\n}\n.ant-input-search-rtl > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button {\n border-radius: 2px 0 0 2px;\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .ant-input {\n height: 32px;\n }\n .ant-input-lg {\n height: 40px;\n }\n .ant-input-sm {\n height: 24px;\n }\n .ant-input-affix-wrapper > input.ant-input {\n height: auto;\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/116.ae34d3de.chunk.js b/build/static/js/116.ae34d3de.chunk.js new file mode 100644 index 0000000..36067b7 --- /dev/null +++ b/build/static/js/116.ae34d3de.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkisomorphic=self.webpackChunkisomorphic||[]).push([[116],{48189:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return qe}});i(5819);var s,n=i(87309),a=(i(99587),i(22961)),r=(i(78308),i(74931)),l=i(4942),o=i(93433),c=i(15671),d=i(43144),h=i(97326),u=i(60136),v=i(27277),m=(i(58717),i(57862)),x=i(29439),p=i(1413),g=i(74165),f=i(15861),C=(i(37531),i(25671)),j=i(72791),y=i(66364),b=i.n(y),k=(i(28353),i(7942)),N=i(77342),A=i(36269),Z=i(29616),w=i(36165),D=i(95002),S=(i(14860),i(19741)),_=i(54077),B=i(34633),P=i(39045),H=i(76864),T=i(41938),O=i(11730),M=i(84531),L=i(47788),R=i(12507),V=i(56288),I=i(16891),E=i(56926),F=i(51562),U=i(56093),G=i(70441),z=i(72211),X=i(70491),Q=i(71857),Y=i(55259),J=i(44575),K=i(5753),W=i(61533),q=i(76795),$=i(20618),ee=i(52762),te=i(78031),ie=i(67709),se=i(92373),ne=i(94678),ae=i(92407),re=i(85167),le=i(97144),oe=i(64094),ce=i(25917),de=i(42139),he=i(91225),ue=i(12549),ve=i(99382),me=i(5338),xe=i(47802),pe=i(41843),ge=i(4050),fe=i(91326),Ce=i(20168),je=i(96971),ye=(i(16150),i(56293)),be=i(10623),ke=i(55919),Ne=i(10552),Ae=i(73637),Ze=i(74713),we=i(53411),De=i(57485),Se=i(75219),_e=i(80184),Be=(0,_e.jsxs)("svg",{style:{marginTop:5},focusable:"false",preserveAspectRatio:"xMidYMid meet",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",width:"20",height:"20",viewBox:"0 0 30 30","aria-hidden":"true",className:"sfg",children:[(0,_e.jsx)("path",{d:"M6,30H18a2.0023,2.0023,0,0,0,2-2V25H18v3H6V4H18V7h2V4a2.0023,2.0023,0,0,0-2-2H6A2.0023,2.0023,0,0,0,4,4V28A2.0023,2.0023,0,0,0,6,30Z"}),(0,_e.jsx)("path",{d:"M20.586 20.586L24.172 17 10 17 10 15 24.172 15 20.586 11.414 22 10 28 16 22 22 20.586 20.586z"})]}),Pe=C.Z.Header,He=C.Z.Footer,Te=C.Z.Content,Oe={cursor:"pointer",padding:"12px 15px",fontSize:15,color:"#ffffff",backgroundColor:"rgba(24, 34, 51, 0.4)",height:55,fontWeight:600},Me={minWidth:60,textAlign:"right",fontSize:14,padding:"10px 15px"},Le={height:45},Re={minWidth:25,padding:5,paddingLeft:10,paddingRight:10};function Ve(e,t){return(s=s||(0,f.Z)((0,g.Z)().mark((function e(t,i){return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Ie(i),Ee(t,i);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Ie=function(e){return navigator&&navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(e):Promise.reject("The Clipboard API is not available.")};function Ee(e,t){A.Z.info({title:(0,_e.jsx)("h3",{children:"Success"}),content:(0,_e.jsx)(D.h,{children:(0,_e.jsxs)("p",{children:[(0,_e.jsx)("strong",{children:"".concat(e," ")})," ","".concat(t)]})}),onOk:function(){},okText:"OK",cancelText:"Cancel",className:"feedback-modal"})}var Fe=function(e){var t=e.column,i=e.sortBy,s=e.sortDirection;return i===t?(0,_e.jsx)("img",{className:"sort-icon ".concat("desc"===s?"down":"up"),src:De.Z,width:12}):null},Ue=function(e){var t=e.address,i=e.ip_address,s=e.addToFav,n=e.whichHeart,a="https://thornode.ninerealms.com/thorchain/node/".concat(t),r="https://viewblock.io/thorchain/address/".concat(t);return(0,_e.jsxs)("span",{style:{height:20,marginLeft:5},className:"icons-wrapper",children:[(0,_e.jsx)(Z.Z,{content:"Explore Node",trigger:"hover",children:(0,_e.jsx)("a",{href:r,target:"_blank",rel:"noopener noreferrer",style:{marginLeft:5},children:(0,_e.jsxs)("svg",{focusable:"false",preserveAspectRatio:"xMidYMid meet",style:{verticalAlign:"middle"},width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,_e.jsx)("path",{d:"M8.21201 6.12094C7.93815 5.79037 7.59622 5.52244 7.20939 5.33531C6.82257 5.14818 6.3999 5.04623 5.97006 5.03638C5.54022 5.02653 5.11326 5.10902 4.71815 5.27823C4.32303 5.44745 3.969 5.69944 3.68006 6.01712L1.96996 7.89664C1.45171 8.48651 1.18641 9.25576 1.23118 10.0387C1.27595 10.8217 1.62723 11.5557 2.20934 12.0827C2.79146 12.6097 3.55784 12.8875 4.34342 12.8562C5.12901 12.825 5.87094 12.4872 6.40942 11.9157L7.38417 10.8444",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"}),(0,_e.jsx)("path",{d:"M5.39864 7.52442C5.63159 7.8849 5.93954 8.19119 6.3016 8.42251C6.66366 8.65384 7.07135 8.80479 7.49704 8.86513C7.92272 8.92546 8.35644 8.89377 8.76876 8.77221C9.18109 8.65064 9.56238 8.44204 9.88678 8.16056L11.8067 6.49526C12.3909 5.97045 12.7451 5.23775 12.793 4.45497C12.8409 3.67219 12.5787 2.90196 12.0628 2.31017C11.5469 1.71838 10.8186 1.35238 10.0348 1.291C9.25103 1.22962 8.47442 1.47778 7.87227 1.98201L6.77194 2.93082",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"})]})})}),(0,_e.jsx)(Z.Z,{content:"Thornode API",trigger:"hover",children:(0,_e.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",style:{marginLeft:5},children:(0,_e.jsxs)("svg",{focusable:"false",preserveAspectRatio:"xMidYMid meet",style:{verticalAlign:"middle"},width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,_e.jsx)("path",{d:"M10.0209 5.95871L9.20835 6.77121L6.22919 3.79204L7.04169 2.97954C7.44794 2.57327 8.93752 1.8962 10.0209 2.97954C11.1042 4.06288 10.4271 5.55243 10.0209 5.95871Z",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"}),(0,_e.jsx)("path",{d:"M11.375 1.625L10.0208 2.97917",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"}),(0,_e.jsx)("path",{d:"M2.97917 7.04199L3.79167 6.22949L6.77083 9.20866L5.95833 10.0212C5.55208 10.4274 4.0625 11.1045 2.97917 10.0212C1.89583 8.93783 2.57292 7.44827 2.97917 7.04199Z",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"}),(0,_e.jsx)("path",{d:"M6.22919 8.66634L7.31252 7.58301",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"}),(0,_e.jsx)("path",{d:"M1.625 11.3747L2.97917 10.0205",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"}),(0,_e.jsx)("path",{d:"M4.33331 6.77083L5.41665 5.6875",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"})]})})}),(0,_e.jsx)(Z.Z,{content:i,title:"IP Address",trigger:"hover",children:(0,_e.jsx)("span",{style:{cursor:"pointer",marginLeft:5},onClick:function(){return Ve("IP Copied to clipboard:",i)},children:(0,_e.jsxs)("svg",{focusable:"false",preserveAspectRatio:"xMidYMid meet",style:{verticalAlign:"middle"},width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,_e.jsx)("path",{d:"M10.2916 1.08301H5.95831C5.81465 1.08301 5.67688 1.14008 5.5753 1.24166C5.47371 1.34324 5.41665 1.48102 5.41665 1.62467C5.41665 1.76833 5.47371 1.90611 5.5753 2.00769C5.67688 2.10927 5.81465 2.16634 5.95831 2.16634H10.2916C10.4353 2.16634 10.5731 2.22341 10.6747 2.32499C10.7762 2.42657 10.8333 2.56435 10.8333 2.70801V6.49967H1.62498C1.48132 6.49967 1.34355 6.55674 1.24196 6.65833C1.14038 6.75991 1.08331 6.89768 1.08331 7.04134V8.12467C1.08331 8.55565 1.25452 8.96898 1.55926 9.27372C1.86401 9.57847 2.27734 9.74967 2.70831 9.74967H4.33331V10.833H2.70831C2.56465 10.833 2.42688 10.8901 2.3253 10.9917C2.22371 11.0932 2.16665 11.231 2.16665 11.3747C2.16665 11.5183 2.22371 11.6561 2.3253 11.7577C2.42688 11.8593 2.56465 11.9163 2.70831 11.9163H10.2916C10.4353 11.9163 10.5731 11.8593 10.6747 11.7577C10.7762 11.6561 10.8333 11.5183 10.8333 11.3747C10.8333 11.231 10.7762 11.0932 10.6747 10.9917C10.5731 10.8901 10.4353 10.833 10.2916 10.833H8.66665V9.74967H10.2916C10.7226 9.74967 11.1359 9.57847 11.4407 9.27372C11.7454 8.96898 11.9166 8.55565 11.9166 8.12467V2.70801C11.9166 2.27703 11.7454 1.86371 11.4407 1.55896C11.1359 1.25421 10.7226 1.08301 10.2916 1.08301ZM7.58331 10.833H5.41665V9.74967H7.58331V10.833ZM10.8333 8.12467C10.8333 8.26833 10.7762 8.40611 10.6747 8.50769C10.5731 8.60927 10.4353 8.66634 10.2916 8.66634H2.70831C2.56465 8.66634 2.42688 8.60927 2.3253 8.50769C2.22371 8.40611 2.16665 8.26833 2.16665 8.12467V7.58301H10.8333V8.12467Z",fill:"currentColor"}),(0,_e.jsx)("path",{d:"M3.9044 3.30042L2.78573 4.75234L1.66706 3.30042C1.36512 2.90853 1.36759 2.45798 1.57491 2.09161C1.78501 1.72031 2.21379 1.42871 2.78573 1.42871C3.35767 1.42871 3.78646 1.72031 3.99656 2.09161C4.20388 2.45798 4.20634 2.90853 3.9044 3.30042Z",stroke:"currentColor"}),(0,_e.jsx)("path",{d:"M1.85712 5.57129H3.71426",stroke:"currentColor","stroke-linecap":"round"})]})})}),(0,_e.jsx)("img",{alt:"#",onClick:function(){return s(t)},src:n(t),style:{cursor:"pointer",marginLeft:5,marginTop:2,width:15,height:15}})]})},Ge=function(e){var t,i,s,n,a,r,l,o,c,d,h,u=e.globalData,v=(e.animateBlockCount,e.state),m=(e.chartData,e.handleClickTotalBond),x=e.chartDataConfig,p=e.totalBondOptions,g=e.handlePopoverVisibility,f=e.handleMaxEffectiveStake,C=e.maxStakeOptions,j="",y="";if(null!==u&&void 0!==u&&u.churnTry&&"false"===(null===u||void 0===u?void 0:u.retiring))y="(CHURN) RETRY IN",j="".concat(null===u||void 0===u||null===(c=u.timeUntilRetry)||void 0===c?void 0:c.days,"d ").concat(null===u||void 0===u||null===(d=u.timeUntilRetry)||void 0===d?void 0:d.hours,"h ").concat(null===u||void 0===u||null===(h=u.timeUntilRetry)||void 0===h?void 0:h.minutes,"m");else if("true"===(null===u||void 0===u?void 0:u.retiring))y="(CHURN) CURRENTLY CHURNING",j="Churning";else{var b,N,A;y="(CHURN) TIME UNTIL",j="".concat(null===u||void 0===u||null===(b=u.timeUntilChurn)||void 0===b?void 0:b.days,"d ").concat(null===u||void 0===u||null===(N=u.timeUntilChurn)||void 0===N?void 0:N.hours,"h ").concat(null===u||void 0===u||null===(A=u.timeUntilChurn)||void 0===A?void 0:A.minutes,"m")}return(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:ce.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"CURRENT BLOCK"}),(0,_e.jsx)("div",{className:"overview-item__value-value",children:parseInt(u.maxHeight).toLocaleString()})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:me.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsxs)("div",{className:"overview-item__value-title",children:[y," "]}),(0,_e.jsx)("div",{className:"overview-item__value-value",children:j})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:ue.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"TOTAL BONDED VALUE"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["\u16b1",v.activeNodes.length>0?parseInt(v.activeNodes.map((function(e){return e.bond})).reduce((function(e,t){return e+t}))/1e8).toLocaleString():"0"]})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:xe.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"MARKET CAP"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["$",null===u||void 0===u||null===(t=u.coingecko)||void 0===t||null===(i=t.market_cap)||void 0===i?void 0:i.toLocaleString()]})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:fe.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"24 HR VOLUME"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["$",null===u||void 0===u||null===(s=u.coingecko)||void 0===s||null===(n=s.total_volume)||void 0===n?void 0:n.toLocaleString()]})]})]}),(0,_e.jsx)(Z.Z,{content:null!==x&&void 0!==x&&null!==(a=x.datasets)&&void 0!==a&&null!==(r=a[0])&&void 0!==r&&r.data&&x.datasets[0].data.length>0?(0,_e.jsx)(k.Z,{data:x,options:C},JSON.stringify(x)):(0,_e.jsx)("div",{children:"No data available"}),title:"Max Effective Stake Over Time",trigger:"click",overlayClassName:"my-custom-popover",onVisibleChange:function(e){return g(e)},children:(0,_e.jsxs)("div",{className:"overview-item",onClick:f,style:{cursor:"pointer"},children:[(0,_e.jsx)("img",{alt:"#",src:je.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"MAX EFFECTIVE BOND"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["\u16b1",parseInt(u.maxEffectiveStake/1e8).toLocaleString()]})]})]})}),(0,_e.jsx)(Z.Z,{content:null!==x&&void 0!==x&&null!==(l=x.datasets)&&void 0!==l&&null!==(o=l[0])&&void 0!==o&&o.data&&x.datasets[0].data.length>0?(0,_e.jsx)(k.Z,{data:x,options:p},JSON.stringify(x)):(0,_e.jsx)("div",{children:"No data available"}),title:"Total Bond Over Time",trigger:"click",overlayClassName:"my-custom-popover",onVisibleChange:function(e){return g(e)},children:(0,_e.jsxs)("div",{className:"overview-item",onClick:m,style:{cursor:"pointer"},children:[(0,_e.jsx)("img",{alt:"#",src:ve.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"TOTAL BOND OVER TIME"}),(0,_e.jsx)("div",{className:"overview-item__value-value",children:"CLICK HERE"})]})]})})]})},ze=function(e){var t,i,s,n,a,r,l,o=e.globalData;return(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:ge.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"PRICE"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["$",null===o||void 0===o||null===(t=o.coingecko)||void 0===t||null===(i=t.current_price)||void 0===i?void 0:i.toLocaleString()]})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:de.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"24 HR HIGH"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["$",null===o||void 0===o||null===(s=o.coingecko)||void 0===s?void 0:s.high_24h]})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:he.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"24 HR LOW"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["$",null===o||void 0===o||null===(n=o.coingecko)||void 0===n?void 0:n.low_24h]})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:pe.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"MARKET CAP RANK"}),(0,_e.jsx)("div",{className:"overview-item__value-value",children:null===o||void 0===o||null===(a=o.coingecko)||void 0===a?void 0:a.market_cap_rank})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:Ce.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"TOTAL SUPPLY"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["\u16b1",null===o||void 0===o||null===(r=o.coingecko)||void 0===r||null===(l=r.total_supply)||void 0===l?void 0:l.toLocaleString()]})]})]})]})},Xe=function(e){var t=e.isp,i={width:25,height:25};return"Amazon.com, Inc."===t||"Amazon Technologies Inc."===t||"Amazon.com"===t?(0,_e.jsx)("img",{alt:"#",src:V,style:i}):"DigitalOcean, LLC"===t||"DigitalOcean"===t?(0,_e.jsx)("img",{alt:"#",src:R,style:i}):"Google LLC"===t?(0,_e.jsx)("img",{alt:"#",src:I,style:i}):"Microsoft Corporation"===t?(0,_e.jsx)("img",{alt:"#",src:E,style:i}):"Hetzner Online GmbH"===t?(0,_e.jsx)("img",{alt:"#",src:F,style:i}):"The Constant Company"===t||"The Constant Company, LLC"===t?(0,_e.jsx)("img",{alt:"#",src:U,style:i}):"Leaseweb UK Limited"===t?(0,_e.jsx)("img",{alt:"#",src:G,style:i}):"Datacamp Limited"===t?(0,_e.jsx)("img",{alt:"#",src:z,style:i}):"Comcast Cable Communications, LLC"===t?(0,_e.jsx)("img",{alt:"#",src:X,style:i}):"Choopa"===t?(0,_e.jsx)("img",{alt:"#",src:Q,style:i}):"Charter Communications Inc"===t?(0,_e.jsx)("img",{alt:"#",src:Y,style:i}):"AT&T Services, Inc."===t?(0,_e.jsx)("img",{alt:"#",src:J,style:i}):"Zenlayer Inc"===t?(0,_e.jsx)("img",{alt:"#",src:K,style:i}):"Aljeel Aljadeed For Technology"===t?(0,_e.jsx)("img",{alt:"#",src:W,style:i}):"Hostinger International Limited"===t?(0,_e.jsx)("img",{alt:"#",src:q,style:i}):"-"},Qe=function(e){var t=e.chain,i=e.obchains,s=e.maxChainHeights,n=i[t]-s[t];return(0,_e.jsx)("td",{style:{textAlign:"center",color:n<-5||isNaN(n)?"red":null},children:0===n?"OK":n.toString()})},Ye=function(e){var t=e.data,i=t.map((function(e){return parseInt(e.bond)})).reduce((function(e,t){return e+t}),0);return t.map((function(e,t){return(0,_e.jsxs)("div",{style:{width:200,display:"flex",justifyContent:"space-between"},children:[(0,_e.jsx)("span",{children:e.bond_address.substring(e.bond_address.length-4,e.bond_address.length)}),(0,_e.jsxs)("span",{children:[(e.bond/i*100).toFixed(2),"%"]}),(0,_e.jsxs)("span",{children:["\u16b1",parseInt((e.bond/1e8).toFixed()).toLocaleString()]})]},t)}))},Je=function(e){for(var t=e.handlePopoverVisibility,i=e.nodeData,s=e.clickSortHeader,n=e.handleClickBond,a=e.handleClickRewards,r=e.handleClickSlashes,l=e.sortColour,o=e.maxChainHeights,c=e.chains,d=e.addToFav,h=e.whichHeart,u=e.chartDataConfig,v=e.bondOptions,g=e.rewardsOptions,f=e.slashesOptions,C=e.maxPositionOptions,y=e.maxPositionChartDataConfig,b=e.handleNodePosition,A=e.visibleColumns,w=void 0===A?(0,p.Z)({},We):A,D=e.sortBy,S=void 0===D?"":D,_=e.sortDirection,O=void 0===_?"":_,M=(0,j.useState)(1),L=(0,x.Z)(M,2),R=L[0],V=L[1],I=(0,j.useState)(100),E=(0,x.Z)(I,2),F=E[0],U=E[1],G=Math.ceil(i.length/F),z=[],X=1;X<=G;X++)z.push(X);var Q=function(e){V(Number(e.target.id))},Y=z.map((function(e){return(0,_e.jsx)("li",{id:e,onClick:Q,className:"paging-item ".concat(R===e?"active":null),children:e},e)})),J=R*F,K=J-F,W=i.slice(K,J),q=function(e){return w&&w[e]?"tableHeader":"tableHeader hidden"},oe=function(e){return w&&w[e]?"":"hidden"};return(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)("div",{className:"item-to-show",children:[(0,_e.jsx)("span",{children:"Nodes per page:"}),(0,_e.jsx)(m.Z,{defaultValue:F,showSearch:!1,onChange:function(e){U(e)},style:{width:80,borderRadius:10},dropdownMatchSelectWidth:!1,options:[{value:"10",label:"10"},{value:"25",label:"25"},{value:"50",label:"50"},{value:"100",label:"100"}]})]}),(0,_e.jsxs)("div",{className:"data-table-wrapper",children:[(0,_e.jsx)("div",{style:{width:"100%"},children:(0,_e.jsxs)("table",{style:{borderWidth:1.1,borderColor:"rgba(0,0,0,1)",width:"100%"},children:[(0,_e.jsx)("thead",{children:(0,_e.jsxs)("tr",{style:{borderStyle:"solid",borderWidth:1.1,borderColor:"rgba(0,0,0,1)",color:"black",textAlign:"right",marginRight:10},children:[(0,_e.jsx)("th",{style:{backgroundColor:"rgba(24, 34, 51, 0.4)"}}),(0,_e.jsx)("th",{className:q("nodes"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("node_address"),textAlign:"center"}),onClick:function(){return s("node_address")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Validator Nodes"}),(0,_e.jsx)(Fe,{column:"node_address",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("age"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("age"),textAlign:"center"}),onClick:function(){return s("age")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Age"}),(0,_e.jsx)(Fe,{column:"age",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("action"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("action"),textAlign:"center"}),onClick:function(){return s("action")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Action"}),(0,_e.jsx)(Fe,{column:"action",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("isp"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("isp"),textAlign:"center"}),onClick:function(){return s("isp")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"ISP"}),(0,_e.jsx)(Fe,{column:"isp",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("location"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("location"),textAlign:"center"}),onClick:function(){return s("location")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Location"}),(0,_e.jsx)(Fe,{column:"location",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("bond"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("bond"),textAlign:"center"}),onClick:function(){return s("bond")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Bond"}),(0,_e.jsx)(Fe,{column:"bond",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("providers"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("bond_providers"),textAlign:"center"}),onClick:function(){return s("bond_providers")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Providers"}),(0,_e.jsx)(Fe,{column:"bond_providers",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("rewards"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("current_award"),textAlign:"center"}),onClick:function(){return s("current_award")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Rewards"}),(0,_e.jsx)(Fe,{column:"current_award",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("apy"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("apy"),textAlign:"center"}),onClick:function(){return s("apy")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"APY"}),(0,_e.jsx)(Fe,{column:"apy",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("slashes"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("slash_points"),textAlign:"center"}),onClick:function(){return s("slash_points")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Slashes"}),(0,_e.jsx)(Fe,{column:"slash_points",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("score"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("score"),textAlign:"center"}),onClick:function(){return s("score")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Score"}),(0,_e.jsx)(Fe,{column:"score",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("version"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("version"),textAlign:"center"}),onClick:function(){return s("version")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Version"}),(0,_e.jsx)(Fe,{column:"version",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("leave"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("leave"),textAlign:"center"}),onClick:function(){return s("leave")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:Be}),(0,_e.jsx)(Fe,{column:"leave",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("rpc"),style:(0,p.Z)((0,p.Z)({},Oe),{},{textAlign:"center"}),children:"RPC"}),(0,_e.jsx)("th",{className:q("bfr"),style:(0,p.Z)((0,p.Z)({},Oe),{},{textAlign:"center"}),children:"BFR"}),c&&(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsx)("th",{className:q("BNB"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return s("BNB")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:$,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Fe,{column:"BNB",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("BTC"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return s("BTC")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:te,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Fe,{column:"BTC",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("ETH"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return s("ETH")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:ee,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Fe,{column:"ETH",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("LTC"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return s("LTC")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:ie,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Fe,{column:"LTC",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("BCH"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return s("BCH")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:se,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Fe,{column:"BCH",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("DOGE"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return s("DOGE")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:ne,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Fe,{column:"DOGE",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("GAIA"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return s("GAIA")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:ae,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Fe,{column:"GAIA",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("AVAX"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return s("AVAX")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:re,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Fe,{column:"AVAX",sortBy:S,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("BSC"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return s("BSC")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:le,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Fe,{column:"BSC",sortBy:S,sortDirection:O})]})})]})]})}),(0,_e.jsxs)("tbody",{children:[W.map((function(e,i){var s,l,m,x,j,A,w;return(0,_e.jsxs)("tr",{style:(0,p.Z)({},Le),children:[(0,_e.jsx)("td",{style:{backgroundColor:"rgba(24, 34, 51, 0.4)",minWidth:35,width:50,paddingLeft:5},children:i+1}),(0,_e.jsxs)("td",{className:oe("nodes"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center",minWidth:250,maxWidth:300}),children:[(0,_e.jsx)(Z.Z,{content:e.node_address,title:"Thornode Address",trigger:"hover",children:(0,_e.jsx)("span",{style:{cursor:"pointer"},className:"nodeaddress",onClick:function(){return Ve("Node address copied to clipboard:",e.node_address)},children:"...".concat(e.node_address.substring(e.node_address.length-4))})}),(0,_e.jsx)(Z.Z,{content:(null===y||void 0===y||null===(s=y.datasets)||void 0===s?void 0:s.length)>0?(0,_e.jsx)(N.Z,{data:y,options:C},JSON.stringify(y)):(0,_e.jsx)("div",{children:"No data available"}),title:"Performance Over Time for ".concat(e.node_address.slice(-4)),trigger:"click",overlayClassName:"my-custom-popover",onVisibleChange:function(e){return t(e)},children:(0,_e.jsx)("span",{className:"icon-wrapper",children:(0,_e.jsx)(B.Z,{style:{stroke:"currentColor"},onClick:function(){return b(e.node_address)}})})}),(0,_e.jsx)(Ue,{address:e.node_address,ip_address:e.ip_address,addToFav:d,whichHeart:h})]}),(0,_e.jsx)("td",{className:oe("age"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:e.age.toFixed(2)}),(0,_e.jsx)("td",{className:oe("action"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center",fontSize:12}),children:e.action}),(0,_e.jsx)("td",{className:oe("isp"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:(0,_e.jsx)(Z.Z,{content:e.isp,title:"Provider",trigger:"hover",children:(0,_e.jsx)("span",{style:{cursor:"pointer"},children:(0,_e.jsx)(Xe,{isp:e.isp})})})}),(0,_e.jsx)("td",{style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center",fontSize:12}),children:e.location}),(0,_e.jsx)("td",{className:oe("bond"),style:{tdStyle:Me,textAlign:"center"},onClick:function(){return n(e.node_address)},children:(0,_e.jsx)(Z.Z,{content:null!==u&&void 0!==u&&null!==(l=u.datasets)&&void 0!==l&&null!==(m=l[0])&&void 0!==m&&m.data&&u.datasets[0].data.length>0?(0,_e.jsx)(k.Z,{data:u,options:v},JSON.stringify(u)):(0,_e.jsx)("div",{children:"No data available"}),title:"Bond Value Over Time for ".concat(e.node_address.slice(-4)),trigger:"click",overlayClassName:"my-custom-popover",onVisibleChange:function(e){return t(e)},children:(0,_e.jsxs)("span",{style:{display:"inline-flex",color:"#1890ff",cursor:"pointer"},children:[(0,_e.jsx)(P.Z,{style:{marginRight:4}}),"\u16b1",parseInt((e.bond/1e8).toFixed()).toLocaleString()]})})}),(0,_e.jsx)("td",{className:oe("providers"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:(0,_e.jsx)(Z.Z,{content:(0,_e.jsx)(Ye,{data:e.bond_providers.providers}),title:"Bond Providers",trigger:"hover",children:(0,_e.jsx)("span",{style:{cursor:"pointer"},children:e.bond_providers.providers.length})})}),(0,_e.jsx)("td",{className:oe("rewards"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),onClick:function(){return a(e.node_address)},children:(0,_e.jsx)(Z.Z,{content:null!==u&&void 0!==u&&null!==(x=u.datasets)&&void 0!==x&&null!==(j=x[0])&&void 0!==j&&j.data&&u.datasets[0].data.length>0?(0,_e.jsx)(k.Z,{data:u,options:g},JSON.stringify(u)):(0,_e.jsx)("div",{children:"No data available"}),title:"Rewards Over Time for ".concat(e.node_address.slice(-4)),trigger:"click",overlayClassName:"my-custom-popover",onVisibleChange:function(e){return t(e)},children:(0,_e.jsxs)("span",{style:{display:"inline-flex",color:"#1890ff",cursor:"pointer"},children:[(0,_e.jsx)(P.Z,{style:{marginRight:4}}),"\u16b1",parseInt((e.current_award/1e8).toFixed()).toLocaleString()]})})}),(0,_e.jsx)("td",{className:oe("apy"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:e.apy}),(0,_e.jsx)("td",{className:oe("slashes"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),onClick:function(){return r(e.node_address)},children:(0,_e.jsx)(Z.Z,{content:null!==u&&void 0!==u&&null!==(A=u.datasets)&&void 0!==A&&null!==(w=A[0])&&void 0!==w&&w.data&&u.datasets[0].data.length>0?(0,_e.jsx)(k.Z,{data:u,options:f},JSON.stringify(u)):(0,_e.jsx)("div",{children:"No data available"}),title:"Slashes Over Time for ".concat(e.node_address.slice(-4)),trigger:"click",overlayClassName:"my-custom-popover",onVisibleChange:function(e){return t(e)},children:(0,_e.jsxs)("span",{style:{display:"inline-flex",color:"#1890ff",cursor:"pointer"},children:[(0,_e.jsx)(P.Z,{style:{marginRight:4}}),parseInt(e.slash_points).toLocaleString()]})})}),(0,_e.jsx)("td",{className:oe("score"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:e.score}),(0,_e.jsx)("td",{className:oe("version"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:e.version}),(0,_e.jsx)("td",{style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:1===e.forced_to_leave||1===e.requested_to_leave?"yes":"-"}),(0,_e.jsx)("td",{className:oe("rpc"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:(0,_e.jsx)("a",{style:{color:"rgba(0,0,0,0.85)"},href:"http://".concat(e.ip_address,":27147/health?"),target:"_blank",rel:"noopener noreferrer",children:"null"!==e.rpc?"*":"Bad"})}),(0,_e.jsx)("td",{className:oe("bfr"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:(0,_e.jsx)("a",{style:{color:"rgba(0,0,0,0.85)"},href:"http://".concat(e.ip_address,":6040/p2pid"),target:"_blank",rel:"noopener noreferrer",children:"null"!==e.bifrost?"*":"Bad"})}),c&&(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsx)(Qe,{chain:"BNB",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"BTC",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"ETH",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"LTC",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"BCH",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"DOGE",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"GAIA",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"AVAX",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"BSC",obchains:e.obchains,maxChainHeights:o})]})]},i)})),(0,_e.jsx)("tr",{children:(0,_e.jsx)("td",{})})]})]})}),(0,_e.jsx)("div",{className:"paging-wrapper",children:(0,_e.jsxs)("ul",{className:"page-numbers",children:[(0,_e.jsx)("li",{onClick:function(){V((function(e){return 1===e?e:e-1}))},className:"nav-button nav-button--prev ".concat(1===R?"disabled":null),children:(0,_e.jsx)(H.Z,{})}),Y,(0,_e.jsx)("li",{onClick:function(){V((function(e){return e===G?e:e+1}))},className:"nav-button nav-button--next ".concat(R===G?"disabled":null),children:(0,_e.jsx)(T.Z,{})})]})})]})]})},Ke=null,We={nodes:!0,age:!0,action:!0,isp:!0,bond:!0,providers:!0,location:!0,leave:!0,rewards:!0,apy:!0,slashes:!0,score:!0,version:!0,rpc:!0,bfr:!0,BTC:!0,BNB:!0,ETH:!0,LTC:!0,BCH:!0,DOGE:!0,GAIA:!0,AVAX:!0,BSC:!0},qe=function(e,t,i){(0,u.Z)(m,e);var s=(0,v.Z)(m);function m(e){var t,i,n,a,r;return(0,c.Z)(this,m),(r=s.call(this,e)).handlePopoverVisibility=function(e){r.setState({isPopoverOpen:e})},r.handleNodePosition=function(e){return(t=t||(0,f.Z)((0,g.Z)().mark((function e(t){var i,s,n,a,l,c,d,h;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.setState({isPopoverOpen:!0}),i="https://api.liquify.com/thor/api/grabPosition=".concat(t),e.prev=2,e.next=5,fetch(i);case 5:return s=e.sent,e.next=8,s.json();case 8:(n=e.sent)&&0!==Object.keys(n).length?(a=Object.entries(n).map((function(e){var t=(0,x.Z)(e,2),i=t[0],s=t[1];return{x:Number(i),y:Number(s.max)}})),l=Object.entries(n).map((function(e){var t=(0,x.Z)(e,2),i=t[0],s=t[1];return{x:Number(i),y:Number(s.position)}})),c=[].concat((0,o.Z)(a),(0,o.Z)(l)).map((function(e){return e.x})),d=Math.min.apply(Math,(0,o.Z)(c)),h=Math.max.apply(Math,(0,o.Z)(c)),r.setState({maxData:a,positionData:l,minX:d,maxX:h})):r.setState({chartData:null}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),console.error("Error fetching data from ".concat(i,":"),e.t0);case 15:case"end":return e.stop()}}),e,null,[[2,12]])})))).apply(this,arguments)},r.handleClickSlashes=function(e){return(i=i||(0,f.Z)((0,g.Z)().mark((function e(t){var i,s,n,a;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.setState({isPopoverOpen:!0}),i="https://api.liquify.com/thor/api/grabSlashes=".concat(t),e.prev=2,e.next=5,fetch(i);case 5:return s=e.sent,e.next=8,s.json();case 8:(n=e.sent)&&0!==Object.keys(n).length?(a=Object.entries(n).map((function(e){var t=(0,x.Z)(e,2),i=t[0],s=t[1];return{x:Number(i),y:Number(s)}})),r.setState({chartData:a})):r.setState({chartData:null}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),console.error("Error fetching data from ".concat(i,":"),e.t0);case 15:case"end":return e.stop()}}),e,null,[[2,12]])})))).apply(this,arguments)},r.handleMaxEffectiveStake=(0,f.Z)((0,g.Z)().mark((function e(){var t,i,s,n;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.setState({isPopoverOpen:!0}),t="https://api.liquify.com/thor/api/maxEffectiveStake",e.prev=2,e.next=5,fetch(t);case 5:return i=e.sent,e.next=8,i.json();case 8:(s=e.sent)&&0!==Object.keys(s).length?(n=Object.entries(s).map((function(e){var t=(0,x.Z)(e,2),i=t[0],s=t[1];return{x:Number(i),y:Math.round(Number(s)/1e8)}})),r.setState({chartData:n})):r.setState({chartData:null}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),console.error("Error fetching data from ".concat(t,":"),e.t0);case 15:case"end":return e.stop()}}),e,null,[[2,12]])}))),r.handleClickTotalBond=(0,f.Z)((0,g.Z)().mark((function e(){var t,i,s,n;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.setState({isPopoverOpen:!0}),t="https://api.liquify.com/thor/api/totalBond",e.prev=2,e.next=5,fetch(t);case 5:return i=e.sent,e.next=8,i.json();case 8:(s=e.sent)&&0!==Object.keys(s).length?(n=Object.entries(s).map((function(e){var t=(0,x.Z)(e,2),i=t[0],s=t[1];return{x:Number(i),y:Math.round(Number(s)/1e8)}})),r.setState({chartData:n})):r.setState({chartData:null}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),console.error("Error fetching data from ".concat(t,":"),e.t0);case 15:case"end":return e.stop()}}),e,null,[[2,12]])}))),r.handleClickRewards=function(e){return(n=n||(0,f.Z)((0,g.Z)().mark((function e(t){var i,s,n,a;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.setState({isPopoverOpen:!0}),i="https://api.liquify.com/thor/api/grabRewards=".concat(t),e.prev=2,e.next=5,fetch(i);case 5:return s=e.sent,e.next=8,s.json();case 8:(n=e.sent)&&0!==Object.keys(n).length?(a=Object.entries(n).map((function(e){var t=(0,x.Z)(e,2),i=t[0],s=t[1];return{x:Number(i),y:Math.round(Number(s)/1e8)}})),r.setState({chartData:a})):r.setState({chartData:null}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),console.error("Error fetching data from ".concat(i,":"),e.t0);case 15:case"end":return e.stop()}}),e,null,[[2,12]])})))).apply(this,arguments)},r.handleClickBond=function(e){return(a=a||(0,f.Z)((0,g.Z)().mark((function e(t){var i,s,n,a;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.setState({isPopoverOpen:!0}),i="https://api.liquify.com/thor/api/grabBond=".concat(t),e.prev=2,e.next=5,fetch(i);case 5:return s=e.sent,e.next=8,s.json();case 8:(n=e.sent)&&0!==Object.keys(n).length?(a=Object.entries(n).map((function(e){var t=(0,x.Z)(e,2),i=t[0],s=t[1];return{x:Number(i),y:Math.round(Number(s)/1e8)}})),r.setState({chartData:a})):r.setState({chartData:null}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),console.error("Error fetching data from ".concat(i,":"),e.t0);case 15:case"end":return e.stop()}}),e,null,[[2,12]])})))).apply(this,arguments)},r.state={isPopoverOpen:!1,chartData:[],data:[],globalData:[],sortBy:"bond",sortDirection:"desc",activeNodes:[],standByNodes:[],whitelistedNodes:[],animateBlockCount:!1,myFavNodes:[],searchTerm:"",visibleColumns:We,nodesFilter:{},loading:!0,sortByChain:null,minX:null,maxX:null},r.clickSortHeader=r.clickSortHeader.bind((0,h.Z)(r)),r.handleClickRewards=r.handleClickRewards.bind((0,h.Z)(r)),r.handleClickSlashes=r.handleClickSlashes.bind((0,h.Z)(r)),r.handleClickBond=r.handleClickBond.bind((0,h.Z)(r)),r.handleClickTotalBond=r.handleClickTotalBond.bind((0,h.Z)(r)),r.handleNodePosition=r.handleNodePosition.bind((0,h.Z)(r)),r}return(0,d.Z)(m,[{key:"componentWillMount",value:function(){return(t=t||(0,f.Z)((0,g.Z)().mark((function e(){var t,i;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=(0,w.ej)("myFavNodes"),i=t.length>0?JSON.parse(t):[],this.setState({myFavNodes:i}),this.refreshData();case 4:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}},{key:"refreshData",value:function(){return(i=i||(0,f.Z)((0,g.Z)().mark((function e(){var t,i=this;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.state.isPopoverOpen){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,(0,w.Yu)();case 4:t=e.sent,this.state.loading&&this.setState({loading:!1}),this.setState({data:t.data,globalData:t.globalData,maxChainHeights:t.maxChainHeights,animateBlockCount:!1},(function(){return i.setData()}));case 8:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}},{key:"componentDidMount",value:function(){var e=this;Ke=setInterval((function(){e.setState({animateBlockCount:!1},(function(){return e.refreshData()}))}),6e3)}},{key:"componentWillUnmount",value:function(){clearInterval(Ke)}},{key:"addToFav",value:function(e){var t=this,i=(0,w.ej)("myFavNodes");if(0===i.length){var s=JSON.stringify([e]);(0,w.d8)("myFavNodes",s),this.setState({myFavNodes:s},(function(){return t.setData()}))}else{var n=JSON.parse(i);if(n.indexOf(e)>-1){var a=n.filter((function(t){return t!==e})),r=JSON.stringify(a);this.setState({myFavNodes:a},(function(){return t.setData()})),(0,w.d8)("myFavNodes",r)}else{n[n.length]=e;var l=JSON.stringify(n);this.setState({myFavNodes:n},(function(){return t.setData()})),(0,w.d8)("myFavNodes",l)}}}},{key:"returnSearchedData",value:function(e){var t=this;return""===this.state.searchTerm?e:e.filter((function(e){return e.node_address.includes(t.state.searchTerm)||e.bondProvidersString.includes(t.state.searchTerm)}))}},{key:"setData",value:function(){var e=this,t=JSON.parse(JSON.stringify(this.state.data)).map((function(t){return e.state.myFavNodes.includes(t.node_address)?t.fave=1:t.fave=0,t})),i=t.filter((function(e){return"Active"===e.status})),s=t.filter((function(t){return("Standby"===t.status||"Ready"===t.status)&&t.version===e.state.globalData.maxVersion})),n=[].concat((0,o.Z)(i.map((function(e){return e.node_address}))),(0,o.Z)(s.map((function(e){return e.node_address})))),a=t.filter((function(e){return!n.includes(e.node_address)}));i=this.findChurnOuts(i),s=this.findChurnIns(s),i=this.returnSearchedData(i),s=this.returnSearchedData(s),a=this.returnSearchedData(a);var r=this.sortData(i,this.state.sortBy,this.state.sortDirection,!1),l=r.filter((function(e){return 1===e.fave}));r=r.filter((function(e){return 0===e.fave})),r=[].concat((0,o.Z)(l),(0,o.Z)(r));var c=this.sortData(s,this.state.sortBy,this.state.sortDirection,!1),d=this.sortData(a,this.state.sortBy,this.state.sortDirection,!1);this.setState({activeNodes:r,standByNodes:c,whitelistedNodes:d})}},{key:"onColumnUpdate",value:function(e){this.setState({visibleColumns:e})}},{key:"onNodesFilter",value:function(e){this.setState((function(t){return{nodesFilter:(0,p.Z)((0,p.Z)({},t.nodesFilter),{},(0,l.Z)({},e,!t.nodesFilter[e]))}}))}},{key:"findChurnIns",value:function(e){if(0===e.length)return[];var t=e.filter((function(e){return e.bond>=3e13})),i=this.sortData(t,"bond","desc");i.length>0&&(i[Math.min(0,i.length-1)].action="Churn In",i[Math.min(1,i.length-1)].action="Churn In",i[Math.min(2,i.length-1)].action="Churn In",i[Math.min(3,i.length-1)].action="Churn In",i[Math.min(4,i.length-1)].action="Churn In");var s=e.filter((function(e){return e.bond<3e13}));return[].concat((0,o.Z)(i),(0,o.Z)(s))}},{key:"findChurnOuts",value:function(e){if(0===e.length)return[];var t=this.sortData(e,"age","desc");return t[0].action="Oldest",(t=this.sortData(e,"bond","asc"))[0].action="Smallest Bond",t=this.sortData(e,"score","asc",!0),this.calcBadValidatorRedline(e),t}},{key:"calcBadValidatorRedline",value:function(e){var t=e.filter((function(e){return e.slash_points>100})),i=t.reduce((function(e,t){return e+parseFloat(t.score)}),0)/(t.length+1)/this.state.globalData.BadValidatorRedline;e.map((function(e){return e.score1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a=null===i?this.state.sortBy:i,r=[];if(this.state.sortChain){var l=a;r=(0,o.Z)(e).sort((function(e,i){var s=e.obchains[l]-t.state.maxChainHeights[l],n=i.obchains[l]-t.state.maxChainHeights[l];return s===n?e.node_address.localeCompare(i.node_address):s-n}))}else if(["node","isp","location","version","action","node_address"].includes(a))r=e.sort((function(e,t){return e[a].localeCompare(t[a])}));else if("bond_providers"===a)r=e.sort((function(e,t){return e[a].providers.length-t[a].providers.length}));else if(!0===n){var c=e.filter((function(e){return parseFloat(e.age)>3})),d=e.filter((function(e){return parseFloat(e.age)<=3})),h=c.sort((function(e,t){return t[a]-e[a]}));h[h.length-1].action="Worst Performing",r=[].concat((0,o.Z)(h),(0,o.Z)(d))}else r=e.sort((function(e,t){return e[a]===t[a]?e.node_address.localeCompare(t.node_address):e[a]>t[a]?1:-1}));return"desc"===(null===s?this.state.sortDirection:s)&&r.reverse(),r}},{key:"clickSortHeader",value:function(e){var t=this,i=["BNB","BTC","ETH","LTC","BCH","DOGE","GAIA","AVAX","BSC"].includes(e),s=this.state.sortBy!==e?"desc":"desc"===this.state.sortDirection?"asc":"desc";this.setState({sortBy:e,sortDirection:s,sortChain:i},(function(){return t.setData()})),window.setTimeout((function(){}),200)}},{key:"sortColour",value:function(e){return"#ffffff"}},{key:"whichHeart",value:function(e){return this.state.myFavNodes.includes(e)?L:M}},{key:"searchBar",value:function(){var e=this;return(0,_e.jsx)("div",{className:"search-input",children:(0,_e.jsx)(r.Z,{style:{width:500,height:46,borderRadius:6,background:"#fff"},onChange:function(t){return e.setState({searchTerm:t.target.value.trim().toLowerCase()},(function(){return e.setData()}))},prefix:(0,_e.jsx)(O.Z,{})})})}},{key:"render",value:function(){var e=this,t=this.state,i=t.loading,s=(t.data,t.nodesFilter),r=t.visibleColumns,l=t.activeNodes,c=t.standByNodes,d=t.whitelistedNodes,h=!s.active&&!s.standby&&!s.orthers,u=b()(s)||h||s.active,v=b()(s)||h||s.standby,m=b()(s)||h||s.orthers,x=this.state.chartData?{datasets:[{label:"Value",data:this.state.chartData,fill:!1,backgroundColor:"rgb(28, 57, 182)",borderColor:"rgba(28, 57, 187, 0.2)",tension:0}]}:{},p=this.state.maxData&&this.state.positionData?{datasets:[{label:"Max",data:this.state.maxData,backgroundColor:"blue",pointRadius:5},{label:"Position",data:this.state.positionData,backgroundColor:"orange",pointRadius:5}]}:{},g=this.state.chartData?{scales:{xAxes:[{type:"linear",position:"bottom",scaleLabel:{display:!0,labelString:"Block Height"},ticks:{autoSkip:!0,maxTicksLimit:10,min:Math.min.apply(Math,(0,o.Z)(this.state.chartData.map((function(e){return e.x})))),max:Math.max.apply(Math,(0,o.Z)(this.state.chartData.map((function(e){return e.x})))),stepSize:2e4,callback:function(e){return e}}}],yAxes:[{scaleLabel:{display:!0,labelString:"Max Effective Stake (\u16b1)"}}]}}:{},f=this.state.chartData?{scales:{xAxes:[{type:"linear",position:"bottom",scaleLabel:{display:!0,labelString:"Block Height"},ticks:{autoSkip:!0,maxTicksLimit:10,min:Math.min.apply(Math,(0,o.Z)(this.state.chartData.map((function(e){return e.x})))),max:Math.max.apply(Math,(0,o.Z)(this.state.chartData.map((function(e){return e.x})))),stepSize:2e4,callback:function(e){return e}}}],yAxes:[{scaleLabel:{display:!0,labelString:"Total Bond Amount (\u16b1)"}}]}}:{},j=this.state.chartData?{scales:{xAxes:[{type:"linear",position:"bottom",scaleLabel:{display:!0,labelString:"Block Height"},ticks:{autoSkip:!0,maxTicksLimit:10,min:this.state.minX,max:this.state.maxX,stepSize:2e4,callback:function(e){return e}}}],yAxes:[{scaleLabel:{display:!0,labelString:"Position"},ticks:{min:0,max:100}}]}}:{},y=this.state.chartData?{scales:{xAxes:[{type:"linear",position:"bottom",scaleLabel:{display:!0,labelString:"Block Height"},ticks:{callback:function(e,t,i){return e}}}],yAxes:[{scaleLabel:{display:!0,labelString:"Slashes Value"}}]}}:{},k=this.state.chartData?{scales:{xAxes:[{type:"linear",position:"bottom",scaleLabel:{display:!0,labelString:"Block Height"},ticks:{callback:function(e,t,i){return e}}}],yAxes:[{scaleLabel:{display:!0,labelString:"Reward Amount (\u16b1)"}}]}}:{},N=this.state.chartData?{scales:{xAxes:[{type:"linear",position:"bottom",scaleLabel:{display:!0,labelString:"Block Height"},ticks:{autoSkip:!0,maxTicksLimit:10,min:Math.min.apply(Math,(0,o.Z)(this.state.chartData.map((function(e){return e.x})))),stepSize:2e4,callback:function(e,t,i){return e}}}],yAxes:[{scaleLabel:{display:!0,labelString:"Bond Amount (\u16b1)"}}]}}:{};return(0,_e.jsxs)(C.Z,{children:[(0,_e.jsxs)(Pe,{style:{color:"white",fontSize:25,fontWeight:700,minWidth:1580,height:110,display:"flex",alignItems:"center"},children:[(0,_e.jsxs)("div",{className:"header-left",children:[(0,_e.jsx)("img",{alt:"#",src:oe.Z,style:{width:55,height:55,margin:"auto 22px auto 0"}}),(0,_e.jsx)("span",{children:"Thornode Monitor"})]}),(0,_e.jsxs)("div",{className:"header-right",children:[(0,_e.jsx)("div",{className:"active-node ".concat(s.active?"active-node--active":null),onClick:function(){return e.onNodesFilter("active")},children:(0,_e.jsx)("img",{src:we.Z})}),(0,_e.jsx)("div",{className:"active-node ".concat(s.standby?"active-node--active":null),onClick:function(){return e.onNodesFilter("standby")},children:(0,_e.jsx)("img",{src:Ze.Z})}),(0,_e.jsx)("div",{className:"active-node ".concat(s.orthers?"active-node--active":null),onClick:function(){return e.onNodesFilter("orthers")},children:(0,_e.jsx)("img",{src:Ae.Z})})]})]}),(0,_e.jsxs)(Te,{style:{padding:40,backgroundColor:"white"},children:[i&&(0,_e.jsx)("div",{className:"loading",children:(0,_e.jsx)("img",{src:ye,className:"loading_icon"})}),!i&&(0,_e.jsxs)("div",{className:"layout-content-wrapper",children:[(0,_e.jsxs)(a.Z,{separator:(0,_e.jsx)(T.Z,{}),children:[(0,_e.jsx)(a.Z.Item,{href:"/",children:"Dashboard"}),(0,_e.jsx)(a.Z.Item,{className:"current",children:"Active Nodes"})]}),(0,_e.jsx)("div",{className:"overview-list-wrapper",children:(0,_e.jsxs)("div",{className:"overview-list",children:[(0,_e.jsx)(Ge,{state:this.state,globalData:this.state.globalData,animateBlockCount:this.state.animateBlockCount,handleClickTotalBond:this.handleClickTotalBond,chartDataConfig:x,totalBondOptions:f,maxStakeOptions:g,handlePopoverVisibility:this.handlePopoverVisibility,handleMaxEffectiveStake:this.handleMaxEffectiveStake}),(0,_e.jsx)(ze,{globalData:this.state.globalData})]})}),u&&(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)("div",{className:"cta-wrapper",children:[(0,_e.jsx)("div",{className:"cta-link",children:(0,_e.jsx)(S.rU,{to:_.Q.ACTIVE_DASHBOARD,children:(0,_e.jsx)(n.Z,{type:"primary",className:"uppercase",children:"Active nodes"})})}),this.searchBar(),(0,_e.jsx)(Se.Z,{initialConfig:r,onConfigUpdate:this.onColumnUpdate.bind(this)})]}),l.length>0&&(0,_e.jsx)(Je,{visibleColumns:r,whichHeart:this.whichHeart.bind(this),addToFav:this.addToFav.bind(this),nodeData:l,clickSortHeader:this.clickSortHeader.bind(this),handleClickBond:this.handleClickBond,handleClickRewards:this.handleClickRewards,handleClickSlashes:this.handleClickSlashes,sortColour:this.sortColour.bind(this),maxChainHeights:this.state.maxChainHeights,chains:!0,sortBy:this.state.sortBy,sortDirection:this.state.sortDirection,chartDataConfig:x,bondOptions:N,rewardsOptions:k,slashesOptions:y,handlePopoverVisibility:this.handlePopoverVisibility,handleNodePosition:this.handleNodePosition,maxPositionChartDataConfig:p,maxPositionOptions:j}),0===l.length&&(0,_e.jsx)("div",{className:"no-data",children:(0,_e.jsx)("div",{className:"no-data__content",children:"No Active Data Available!"})}),(0,_e.jsx)("br",{})]}),v&&(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)("div",{className:"cta-wrapper",children:[(0,_e.jsx)("div",{className:"cta-link",children:(0,_e.jsx)(S.rU,{to:_.Q.STANDBY_DASHBOARD,children:(0,_e.jsx)(n.Z,{type:"primary",className:"uppercase",children:"Standby nodes"})})}),!u&&(0,_e.jsxs)(_e.Fragment,{children:[this.searchBar(),(0,_e.jsx)(Se.Z,{initialConfig:r,onConfigUpdate:this.onColumnUpdate.bind(this)})]})]}),c.length>0&&(0,_e.jsx)(Je,{visibleColumns:r,whichHeart:this.whichHeart.bind(this),addToFav:this.addToFav.bind(this),nodeData:c,clickSortHeader:this.clickSortHeader.bind(this),handleClickBond:this.handleClickBond,handleClickRewards:this.handleClickRewards,handleClickSlashes:this.handleClickSlashes,sortColour:this.sortColour.bind(this),maxChainHeights:this.state.maxChainHeights,chains:!1,sortBy:this.state.sortBy,sortDirection:this.state.sortDirection,chartDataConfig:x,bondOptions:N,rewardsOptions:k,slashesOptions:y,handlePopoverVisibility:this.handlePopoverVisibility,handleNodePosition:this.handleNodePosition,maxPositionChartDataConfig:p,maxPositionOptions:j}),0===c.length&&(0,_e.jsx)("div",{className:"no-data",children:(0,_e.jsx)("div",{className:"no-data__content",children:"No Standby Data Available!"})}),(0,_e.jsx)("br",{})]}),m&&(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)("div",{className:"cta-wrapper",children:[(0,_e.jsx)("div",{className:"cta-link",children:(0,_e.jsx)(S.rU,{to:_.Q.OTHER_DASHBOARD,children:(0,_e.jsx)(n.Z,{type:"primary",className:"uppercase",children:"Other nodes"})})}),!u&&!v&&(0,_e.jsxs)(_e.Fragment,{children:[this.searchBar(),(0,_e.jsx)(Se.Z,{initialConfig:r,onConfigUpdate:this.onColumnUpdate.bind(this)})]})]}),d.length>0&&(0,_e.jsx)(Je,{visibleColumns:r,whichHeart:this.whichHeart.bind(this),addToFav:this.addToFav.bind(this),nodeData:d,clickSortHeader:this.clickSortHeader.bind(this),handleClickBond:this.handleClickBond,handleClickRewards:this.handleClickRewards,handleClickSlashes:this.handleClickSlashes,sortColour:this.sortColour.bind(this),maxChainHeights:this.state.maxChainHeights,chains:!1,sortBy:this.state.sortBy,sortDirection:this.state.sortDirection,chartDataConfig:x,bondOptions:N,rewardsOptions:k,slashesOptions:y,handlePopoverVisibility:this.handlePopoverVisibility,handleNodePosition:this.handleNodePosition,maxPositionChartDataConfig:p,maxPositionOptions:j}),0===d.length&&(0,_e.jsx)("div",{className:"no-data",children:(0,_e.jsx)("div",{className:"no-data__content",children:"No Other Data Available!"})})]})]})]}),(0,_e.jsxs)(He,{children:[(0,_e.jsx)("a",{href:"https://github.com/liquify-validation",target:"_blank",className:"link",children:(0,_e.jsx)("img",{alt:"#",src:be.Z,className:"overview-item__icon"})}),(0,_e.jsx)("a",{href:"https://twitter.com/Liquify_ltd",target:"_blank",className:"link",children:(0,_e.jsx)("img",{alt:"#",src:ke.Z,className:"overview-item__icon"})}),(0,_e.jsxs)("div",{className:"logo-wrapper",children:[(0,_e.jsx)("span",{children:"Built by:"}),(0,_e.jsx)("img",{alt:"#",src:Ne.Z,className:"overview-item__icon"})]})]})]})}}]),m}(j.Component)},66364:function(e,t,i){var s=i(43654),n=i(88383),a=i(34963),r=i(93629),l=i(21473),o=i(5174),c=i(62936),d=i(19102),h=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(l(e)&&(r(e)||"string"==typeof e||"function"==typeof e.splice||o(e)||d(e)||a(e)))return!e.length;var t=n(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(c(e))return!s(e).length;for(var i in e)if(h.call(e,i))return!1;return!0}},97144:function(e){"use strict";e.exports="data:image/png;base64,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"}}]); +//# sourceMappingURL=116.ae34d3de.chunk.js.map \ No newline at end of file diff --git a/build/static/js/116.ae34d3de.chunk.js.map b/build/static/js/116.ae34d3de.chunk.js.map new file mode 100644 index 0000000..0014846 --- /dev/null +++ b/build/static/js/116.ae34d3de.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/116.ae34d3de.chunk.js","mappings":"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","sources":["containers/A_monitor/activepage.js","../node_modules/lodash/isEmpty.js"],"sourcesContent":["import React, { Component, useState } from \"react\";\r\nimport isEmpty from \"lodash/isEmpty\";\r\nimport { Line } from \"react-chartjs-2\";\r\nimport CustomLineChart from \"./CustomLineChart\";\r\nimport CustomScatterChart from \"./CustomScatterChart\";\r\nimport Modals from \"@iso/components/Feedback/Modal\";\r\nimport Popover from \"@iso/components/uielements/popover\";\r\nimport { getData, setCookie, getCookie } from \"CommonFunctions\";\r\nimport { ModalContent } from \"../Feedback/Modal/Modal.styles\";\r\nimport { Layout, Button, Input, Modal, Switch, Breadcrumb, Select } from \"antd\";\r\nimport \"./styles.css\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { PUBLIC_ROUTE } from \"../../route.constants\";\r\nimport {\r\n SearchOutlined,\r\n LeftOutlined,\r\n RightOutlined,\r\n HistoryOutlined,\r\n DotChartOutlined,\r\n} from \"@ant-design/icons\";\r\n\r\nimport heartBlank from \"@iso/assets/images/heart-blank.png\";\r\nimport heartFull from \"@iso/assets/images/heart-full.png\";\r\n\r\nimport imageDO from \"@iso/assets/images/do.png\";\r\nimport imageAWS from \"@iso/assets/images/aws.png\";\r\nimport imageGCP from \"@iso/assets/images/gcp.png\";\r\nimport imageAZURE from \"@iso/assets/images/azure.png\";\r\nimport imageHETZNER from \"@iso/assets/images/hetzner.png\";\r\nimport imageVULTR from \"@iso/assets/images/vultr.png\";\r\nimport imageLeaseweb from \"@iso/assets/images/leaseweb.png\";\r\nimport imageDatacamp from \"@iso/assets/images/datacamp.png\";\r\nimport imageComcast from \"@iso/assets/images/comcast.png\";\r\nimport imageChoopa from \"@iso/assets/images/choopa.png\";\r\nimport imageChartercoms from \"@iso/assets/images/chartercoms.png\";\r\nimport imageATandT from \"@iso/assets/images/atandt.png\";\r\nimport imageZenlayer from \"@iso/assets/images/zenlayer.png\";\r\nimport imageAljeel from \"@iso/assets/images/Aljeel.png\";\r\nimport imageHostinger from \"@iso/assets/images/Hostinger.png\";\r\n\r\nimport binance from \"@iso/assets/images/binance.png\";\r\nimport eth from \"@iso/assets/images/eth.png\";\r\nimport bitcoin from \"@iso/assets/images/bitcoin.png\";\r\nimport litecoin from \"@iso/assets/images/litecoin.png\";\r\nimport bitcoincash from \"@iso/assets/images/bitcoincash.png\";\r\nimport dogecoin from \"@iso/assets/images/dogecoin.png\";\r\nimport gaia from \"@iso/assets/images/atom.png\";\r\nimport avax from \"@iso/assets/images/avax.png\";\r\nimport bsc from \"@iso/assets/images/bsc.png\";\r\n\r\nimport thornode from \"@iso/assets/images/thornode.svg\";\r\n\r\nimport blockIcon from \"@iso/assets/images/overview/block_icon.svg\";\r\nimport highTradingIcon from \"@iso/assets/images/overview/24high_trading.svg\";\r\nimport lowTradingIcon from \"@iso/assets/images/overview/24low_trading.svg\";\r\nimport bondIcon from \"@iso/assets/images/overview/Bond_icon.svg\";\r\nimport chartLineIcon from \"@iso/assets/images/overview/chartLineIcon.svg\";\r\nimport churnsIcon from \"@iso/assets/images/overview/churns_icon.svg\";\r\nimport marcketCapIcon from \"@iso/assets/images/overview/marcket_Cap.svg\";\r\nimport mcapRankIcon from \"@iso/assets/images/overview/mcap_rank.svg\";\r\nimport runeUsdtIcon from \"@iso/assets/images/overview/rune_usdt.svg\";\r\nimport timeIcon from \"@iso/assets/images/overview/time_icon.svg\";\r\nimport totalSupplyIcon from \"@iso/assets/images/overview/total_supply.svg\";\r\nimport verticalTopIcon from \"@iso/assets/images/overview/vertical-align-top.svg\";\r\nimport filterIcon from \"@iso/assets/images/overview/filter.svg\";\r\nimport loadingIcon from \"@iso/assets/images/overview/loading.png\";\r\nimport githubIcon from \"@iso/assets/images/overview/github_link_icon.svg\";\r\nimport twitterIcon from \"@iso/assets/images/overview/twitter_link_icon.svg\";\r\nimport liquifyLogo from \"@iso/assets/images/overview/liquify_logo.svg\";\r\n\r\nimport threeDotsIcon from \"@iso/assets/images/overview/dots_three_circle.svg\";\r\nimport powerIcon from \"@iso/assets/images/overview/power.svg\";\r\nimport activeIcon from \"@iso/assets/images/overview/active_icon.svg\";\r\nimport arrowDownIcon from \"@iso/assets/images/overview/arrow-down.svg\";\r\n\r\nimport VisibleColumn from \"@iso/components/VisibleColumn/VisibleColumn\";\r\nconst leaveIcon = (\r\n \r\n \r\n \r\n \r\n);\r\nconst { Header, Footer, Content } = Layout;\r\n\r\nconst headerStyle = {\r\n cursor: \"pointer\",\r\n padding: \"12px 15px\",\r\n fontSize: 15,\r\n color: \"#ffffff\",\r\n backgroundColor: \"rgba(24, 34, 51, 0.4)\",\r\n height: 55,\r\n fontWeight: 600,\r\n};\r\nconst tdStyle = {\r\n minWidth: 60,\r\n textAlign: \"right\",\r\n fontSize: 14,\r\n padding: \"10px 15px\",\r\n};\r\nconst trStyle = { height: 45 };\r\nconst iconStyle = {\r\n minWidth: 25,\r\n padding: 5,\r\n paddingLeft: 10,\r\n paddingRight: 10,\r\n};\r\n\r\nasync function copyToClipWithPopup(msg, ip) {\r\n copyToClipboard(ip);\r\n popUpModal(msg, ip);\r\n}\r\n\r\nconst copyToClipboard = (str) => {\r\n if (navigator && navigator.clipboard && navigator.clipboard.writeText)\r\n return navigator.clipboard.writeText(str);\r\n return Promise.reject(\"The Clipboard API is not available.\");\r\n};\r\n\r\nfunction popUpModal(msg, ip) {\r\n Modals.info({\r\n title:

    Success

    ,\r\n content: (\r\n \r\n

    \r\n {`${msg} `} {`${ip}`}\r\n

    \r\n
    \r\n ),\r\n onOk() {},\r\n okText: \"OK\",\r\n cancelText: \"Cancel\",\r\n className: \"feedback-modal\",\r\n });\r\n}\r\n\r\nconst SortIcon = ({ column, sortBy, sortDirection }) => {\r\n if (sortBy === column) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nconst Icons = ({ address, ip_address, addToFav, whichHeart }) => {\r\n const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}`;\r\n const secondURL = `https://viewblock.io/thorchain/address/${address}`;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n copyToClipWithPopup(\"IP Copied to clipboard:\", ip_address)\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n addToFav(address)}\r\n src={whichHeart(address)}\r\n style={{\r\n cursor: \"pointer\",\r\n marginLeft: 5,\r\n marginTop: 2,\r\n width: 15,\r\n height: 15,\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nconst GlobalData = ({\r\n globalData,\r\n animateBlockCount,\r\n state,\r\n chartData,\r\n handleClickTotalBond,\r\n chartDataConfig,\r\n totalBondOptions,\r\n handlePopoverVisibility,\r\n handleMaxEffectiveStake,\r\n maxStakeOptions,\r\n}) => {\r\n let timeToDisplay = \"\";\r\n let msgTitle = \"\";\r\n if (globalData?.churnTry && globalData?.retiring === \"false\") {\r\n msgTitle = \"(CHURN) RETRY IN\";\r\n timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m`;\r\n } else if (globalData?.retiring === \"true\") {\r\n msgTitle = \"(CHURN) CURRENTLY CHURNING\";\r\n timeToDisplay = \"Churning\";\r\n } else {\r\n msgTitle = \"(CHURN) TIME UNTIL\";\r\n timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m`;\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n \"#\"\r\n
    \r\n
    CURRENT BLOCK
    \r\n
    \r\n {parseInt(globalData.maxHeight).toLocaleString()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    {msgTitle}
    \r\n
    {timeToDisplay}
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    TOTAL BONDED VALUE
    \r\n
    \r\n ᚱ\r\n {state.activeNodes.length > 0\r\n ? parseInt(\r\n state.activeNodes\r\n .map((item) => item.bond)\r\n .reduce((prev, next) => prev + next) / 100000000\r\n ).toLocaleString()\r\n : \"0\"}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    MARKET CAP
    \r\n
    \r\n ${globalData?.coingecko?.market_cap?.toLocaleString()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    24 HR VOLUME
    \r\n
    \r\n ${globalData?.coingecko?.total_volume?.toLocaleString()}\r\n
    \r\n
    \r\n
    \r\n 0 ? (\r\n \r\n ) : (\r\n
    No data available
    \r\n )\r\n }\r\n title=\"Max Effective Stake Over Time\"\r\n trigger=\"click\"\r\n overlayClassName=\"my-custom-popover\"\r\n onVisibleChange={(visible) => handlePopoverVisibility(visible)}\r\n >\r\n \r\n \"#\"\r\n
    \r\n
    MAX EFFECTIVE BOND
    \r\n
    \r\n ᚱ\r\n {parseInt(\r\n globalData.maxEffectiveStake / 100000000\r\n ).toLocaleString()}\r\n
    \r\n
    \r\n \r\n \r\n 0 ? (\r\n \r\n ) : (\r\n
    No data available
    \r\n )\r\n }\r\n title=\"Total Bond Over Time\"\r\n trigger=\"click\"\r\n overlayClassName=\"my-custom-popover\"\r\n onVisibleChange={(visible) => handlePopoverVisibility(visible)}\r\n >\r\n \r\n \"#\"\r\n
    \r\n
    \r\n TOTAL BOND OVER TIME\r\n
    \r\n
    CLICK HERE
    \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst CoinGeckoData = ({ globalData }) => {\r\n return (\r\n <>\r\n
    \r\n \"#\"\r\n
    \r\n
    PRICE
    \r\n
    \r\n ${globalData?.coingecko?.current_price?.toLocaleString()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    24 HR HIGH
    \r\n
    \r\n ${globalData?.coingecko?.high_24h}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    24 HR LOW
    \r\n
    \r\n ${globalData?.coingecko?.low_24h}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    MARKET CAP RANK
    \r\n
    \r\n {globalData?.coingecko?.market_cap_rank}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    TOTAL SUPPLY
    \r\n
    \r\n ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nconst ReturnIspImage = ({ isp }) => {\r\n const style = { width: 25, height: 25 };\r\n\r\n if (\r\n isp === \"Amazon.com, Inc.\" ||\r\n isp === \"Amazon Technologies Inc.\" ||\r\n isp === \"Amazon.com\"\r\n ) {\r\n return \"#\";\r\n }\r\n if (isp === \"DigitalOcean, LLC\" || isp === \"DigitalOcean\") {\r\n return \"#\";\r\n }\r\n if (isp === \"Google LLC\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Microsoft Corporation\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Hetzner Online GmbH\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"The Constant Company\" || isp === \"The Constant Company, LLC\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Leaseweb UK Limited\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Datacamp Limited\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Comcast Cable Communications, LLC\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Choopa\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Charter Communications Inc\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"AT&T Services, Inc.\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Zenlayer Inc\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Aljeel Aljadeed For Technology\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Hostinger International Limited\") {\r\n return \"#\";\r\n }\r\n\r\n return \"-\";\r\n};\r\n\r\nconst ChainTD = ({ chain, obchains, maxChainHeights }) => {\r\n const delta = obchains[chain] - maxChainHeights[chain];\r\n return (\r\n \r\n {delta === 0 ? \"OK\" : delta.toString()}\r\n \r\n );\r\n};\r\n\r\nconst BondProviderPopOver = ({ data }) => {\r\n const totalBond = data\r\n .map((item) => parseInt(item.bond))\r\n .reduce((a, b) => a + b, 0);\r\n\r\n const d = data.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.bond_address.substring(\r\n item.bond_address.length - 4,\r\n item.bond_address.length\r\n )}\r\n \r\n {((item.bond / totalBond) * 100).toFixed(2)}%\r\n \r\n ᚱ{parseInt((item.bond / 100000000).toFixed()).toLocaleString()}\r\n \r\n \r\n );\r\n });\r\n return d;\r\n};\r\n\r\nconst NodeTable = ({\r\n handlePopoverVisibility,\r\n nodeData,\r\n clickSortHeader,\r\n handleClickBond,\r\n handleClickRewards,\r\n handleClickSlashes,\r\n sortColour,\r\n maxChainHeights,\r\n chains,\r\n addToFav,\r\n whichHeart,\r\n chartDataConfig,\r\n bondOptions,\r\n rewardsOptions,\r\n slashesOptions,\r\n maxPositionOptions,\r\n maxPositionChartDataConfig,\r\n handleNodePosition,\r\n visibleColumns = { ...defaulColumns },\r\n sortBy = \"\",\r\n sortDirection = \"\",\r\n}) => {\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [itemsPerPage, setItemsPerPage] = useState(100);\r\n\r\n const totalPages = Math.ceil(nodeData.length / itemsPerPage);\r\n const pageNumbers = [];\r\n\r\n for (let i = 1; i <= totalPages; i++) {\r\n pageNumbers.push(i);\r\n }\r\n\r\n const handleClick = (event) => {\r\n setCurrentPage(Number(event.target.id));\r\n };\r\n\r\n const handleNext = () => {\r\n setCurrentPage((prevPage) =>\r\n prevPage === totalPages ? prevPage : prevPage + 1\r\n );\r\n };\r\n\r\n const handlePrev = () => {\r\n setCurrentPage((prevPage) => (prevPage === 1 ? prevPage : prevPage - 1));\r\n };\r\n\r\n const renderPageNumbers = pageNumbers.map((number) => {\r\n return (\r\n \r\n {number}\r\n \r\n );\r\n });\r\n\r\n const indexOfLastItem = currentPage * itemsPerPage;\r\n const indexOfFirstItem = indexOfLastItem - itemsPerPage;\r\n const currentItems = nodeData.slice(indexOfFirstItem, indexOfLastItem);\r\n\r\n const getHeaderClassName = (key) => {\r\n return visibleColumns && visibleColumns[key]\r\n ? \"tableHeader\"\r\n : \"tableHeader hidden\";\r\n };\r\n\r\n const getCellClassName = (key) => {\r\n return visibleColumns && visibleColumns[key] ? \"\" : \"hidden\";\r\n };\r\n\r\n const updatePagingItem = (value) => {\r\n setItemsPerPage(value);\r\n };\r\n return (\r\n <>\r\n
    \r\n Nodes per page:\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n clickSortHeader(\"node_address\")}\r\n >\r\n \r\n Validator Nodes\r\n \r\n \r\n \r\n clickSortHeader(\"age\")}\r\n >\r\n \r\n Age\r\n \r\n \r\n \r\n clickSortHeader(\"action\")}\r\n >\r\n \r\n Action\r\n \r\n \r\n \r\n clickSortHeader(\"isp\")}\r\n >\r\n \r\n ISP\r\n \r\n \r\n \r\n clickSortHeader(\"location\")}\r\n >\r\n \r\n Location\r\n \r\n \r\n \r\n clickSortHeader(\"bond\")}\r\n >\r\n \r\n Bond\r\n \r\n \r\n \r\n clickSortHeader(\"bond_providers\")}\r\n >\r\n \r\n Providers\r\n \r\n \r\n \r\n clickSortHeader(\"current_award\")}\r\n >\r\n \r\n Rewards\r\n \r\n \r\n \r\n clickSortHeader(\"apy\")}\r\n >\r\n \r\n APY\r\n \r\n \r\n \r\n clickSortHeader(\"slash_points\")}\r\n >\r\n \r\n Slashes\r\n \r\n \r\n \r\n clickSortHeader(\"score\")}\r\n >\r\n \r\n Score\r\n \r\n \r\n \r\n clickSortHeader(\"version\")}\r\n >\r\n \r\n Version\r\n \r\n \r\n \r\n clickSortHeader(\"leave\")}\r\n >\r\n \r\n {leaveIcon}\r\n \r\n \r\n \r\n \r\n RPC\r\n \r\n \r\n BFR\r\n \r\n\r\n {chains && (\r\n <>\r\n clickSortHeader(\"BNB\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n clickSortHeader(\"BTC\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n clickSortHeader(\"ETH\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n clickSortHeader(\"LTC\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n clickSortHeader(\"BCH\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n clickSortHeader(\"DOGE\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n clickSortHeader(\"GAIA\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n clickSortHeader(\"AVAX\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n clickSortHeader(\"BSC\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {currentItems.map((item, index) => (\r\n \r\n \r\n {index + 1}\r\n \r\n \r\n \r\n \r\n copyToClipWithPopup(\r\n \"Node address copied to clipboard:\",\r\n item.node_address\r\n )\r\n }\r\n >\r\n {`...${item.node_address.substring(\r\n item.node_address.length - 4\r\n )}`}\r\n \r\n \r\n 0 ? (\r\n \r\n ) : (\r\n
    No data available
    \r\n )\r\n }\r\n title={`Performance Over Time for ${item.node_address.slice(\r\n -4\r\n )}`}\r\n trigger=\"click\"\r\n overlayClassName=\"my-custom-popover\"\r\n onVisibleChange={(visible) =>\r\n handlePopoverVisibility(visible)\r\n }\r\n >\r\n \r\n handleNodePosition(item.node_address)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {item.age.toFixed(2)}\r\n \r\n \r\n {item.action}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n handleClickBond(item.node_address)}\r\n >\r\n 0 ? (\r\n \r\n ) : (\r\n
    No data available
    \r\n )\r\n }\r\n title={`Bond Value Over Time for ${item.node_address.slice(\r\n -4\r\n )}`}\r\n trigger=\"click\"\r\n overlayClassName=\"my-custom-popover\"\r\n onVisibleChange={(visible) =>\r\n handlePopoverVisibility(visible)\r\n }\r\n >\r\n \r\n ᚱ\r\n {parseInt(\r\n (item.bond / 100000000).toFixed()\r\n ).toLocaleString()}\r\n \r\n \r\n \r\n \r\n \r\n }\r\n title={\"Bond Providers\"}\r\n trigger=\"hover\"\r\n >\r\n \r\n {item.bond_providers.providers.length}\r\n \r\n \r\n \r\n handleClickRewards(item.node_address)}\r\n >\r\n 0 ? (\r\n \r\n ) : (\r\n
    No data available
    \r\n )\r\n }\r\n title={`Rewards Over Time for ${item.node_address.slice(\r\n -4\r\n )}`}\r\n trigger=\"click\"\r\n overlayClassName=\"my-custom-popover\"\r\n onVisibleChange={(visible) =>\r\n handlePopoverVisibility(visible)\r\n }\r\n >\r\n \r\n ᚱ\r\n {parseInt(\r\n (item.current_award / 100000000).toFixed()\r\n ).toLocaleString()}\r\n \r\n \r\n \r\n \r\n {item.apy}\r\n \r\n handleClickSlashes(item.node_address)}\r\n >\r\n 0 ? (\r\n \r\n ) : (\r\n
    No data available
    \r\n )\r\n }\r\n title={`Slashes Over Time for ${item.node_address.slice(\r\n -4\r\n )}`}\r\n trigger=\"click\"\r\n overlayClassName=\"my-custom-popover\"\r\n onVisibleChange={(visible) =>\r\n handlePopoverVisibility(visible)\r\n }\r\n >\r\n \r\n \r\n {parseInt(item.slash_points).toLocaleString()}\r\n \r\n \r\n \r\n \r\n {item.score}\r\n \r\n \r\n {item.version}\r\n \r\n {/*
    */}\r\n \r\n \r\n \r\n {item.rpc !== \"null\" ? \"*\" : \"Bad\"}\r\n \r\n \r\n \r\n \r\n {item.bifrost !== \"null\" ? \"*\" : \"Bad\"}\r\n \r\n \r\n\r\n {chains && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
    + 0 ? ( + + ) : ( +
    No data available
    + ) + } + title={`Max Position Over Time for `} + trigger="click" + overlayClassName="my-custom-popover" + onVisibleChange={(visible) => + handlePopoverVisibility(visible) + } + > + + handleNodePosition(item.node_address)} + /> + +
    { @@ -1715,6 +1822,38 @@ We use string sort function if value is one of the arrays else do second sort nu return this.state.myFavNodes.includes(address) ? heartFull : heartBlank; } + handleNodePosition = async (node_address) => { + this.setState({ isPopoverOpen: true }); + const url = `https://api.liquify.com/thor/api/grabPosition=${node_address}`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const maxData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y.max), + })); + + const positionData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Number(y.position), + })); + + const allXValues = [...maxData, ...positionData].map( + (dataPoint) => dataPoint.x + ); + const minX = Math.min(...allXValues); + const maxX = Math.max(...allXValues); + + this.setState({ maxData, positionData, minX, maxX }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + handleClickSlashes = async (node_address) => { this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`; @@ -1735,6 +1874,48 @@ We use string sort function if value is one of the arrays else do second sort nu } }; + handleMaxEffectiveStake = async () => { + this.setState({ isPopoverOpen: true }); + const url = `https://api.liquify.com/thor/api/maxEffectiveStake`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Math.round(Number(y) / 100000000), + })); + + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + + handleClickTotalBond = async () => { + this.setState({ isPopoverOpen: true }); + const url = `https://api.liquify.com/thor/api/totalBond`; + try { + const response = await fetch(url); + const rawData = await response.json(); + if (!rawData || Object.keys(rawData).length === 0) { + this.setState({ chartData: null }); + } else { + const chartData = Object.entries(rawData).map(([x, y]) => ({ + x: Number(x), + y: Math.round(Number(y) / 100000000), + })); + + this.setState({ chartData }); + } + } catch (error) { + console.error(`Error fetching data from ${url}:`, error); + } + }; + handleClickRewards = async (node_address) => { this.setState({ isPopoverOpen: true }); const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`; @@ -1815,6 +1996,135 @@ We use string sort function if value is one of the arrays else do second sort nu } : {}; + const maxPositionChartDataConfig = + this.state.maxData && this.state.positionData + ? { + datasets: [ + { + label: "Max", + data: this.state.maxData, + backgroundColor: "blue", + pointRadius: 5, + }, + { + label: "Position", + data: this.state.positionData, + backgroundColor: "orange", + pointRadius: 5, + }, + ], + } + : {}; + + const maxStakeOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Block Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: Math.min(...this.state.chartData.map((data) => data.x)), + max: Math.max(...this.state.chartData.map((data) => data.x)), + stepSize: 20000, + callback: function (value) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Max Effective Stake (ᚱ)", + }, + }, + ], + }, + } + : {}; + + const totalBondOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Block Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: Math.min(...this.state.chartData.map((data) => data.x)), + max: Math.max(...this.state.chartData.map((data) => data.x)), + stepSize: 20000, + callback: function (value) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Total Bond Amount (ᚱ)", + }, + }, + ], + }, + } + : {}; + + const maxPositionOptions = this.state.chartData + ? { + scales: { + xAxes: [ + { + type: "linear", + position: "bottom", + scaleLabel: { + display: true, + labelString: "Block Height", + }, + ticks: { + autoSkip: true, + maxTicksLimit: 10, + min: this.state.minX, + max: this.state.maxX, + stepSize: 20000, + callback: function (value) { + return value; + }, + }, + }, + ], + yAxes: [ + { + scaleLabel: { + display: true, + labelString: "Position", + }, + ticks: { + min: 0, + max: 100, + }, + }, + ], + }, + } + : {}; + const slashesOptions = this.state.chartData ? { scales: { @@ -1979,6 +2289,12 @@ We use string sort function if value is one of the arrays else do second sort nu state={this.state} globalData={this.state.globalData} animateBlockCount={this.state.animateBlockCount} + handleClickTotalBond={this.handleClickTotalBond} + chartDataConfig={chartDataConfig} + totalBondOptions={totalBondOptions} + maxStakeOptions={maxStakeOptions} + handlePopoverVisibility={this.handlePopoverVisibility} + handleMaxEffectiveStake={this.handleMaxEffectiveStake} /> @@ -2019,6 +2335,9 @@ We use string sort function if value is one of the arrays else do second sort nu rewardsOptions={rewardsOptions} slashesOptions={slashesOptions} handlePopoverVisibility={this.handlePopoverVisibility} + handleNodePosition={this.handleNodePosition} + maxPositionChartDataConfig={maxPositionChartDataConfig} + maxPositionOptions={maxPositionOptions} /> )} {standByNodes.length === 0 && ( diff --git a/src/containers/A_monitor/styles.css b/src/containers/A_monitor/styles.css index 88003f5..569609b 100644 --- a/src/containers/A_monitor/styles.css +++ b/src/containers/A_monitor/styles.css @@ -247,7 +247,6 @@ iframe { position: relative; z-index: 1; border-radius: 10px; - overflow: hidden; } .data-table-wrapper::before { @@ -471,6 +470,64 @@ tr:first-child { background: #1f1f43; } +/* .filter-modal .custom-pie-chart { + width: 650px; + height: 100%; + margin: 0 auto; +} + +.filter-modal .custom-pie-chart canvas { + width: 100% !important; + height: 100% !important; +} */ + +.pie-modal { + position: center; + padding-right: 200px; +} + +.pie-modal .ant-modal, +.pie-modal .ant-modal-title { + color: #182233; +} + +.pie-modal .ant-modal-content { + width: 800px; + background: #ffffff; + box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.25); + border-radius: 20px; + overflow: hidden; + padding: 38px; +} +.pie-modal .ant-modal-header { + border: none; +} +.pie-modal .ant-modal-title { + font-weight: 700; + font-size: 25px; + line-height: 30px; + letter-spacing: -0.01em; + color: #182233; + text-align: center; +} +.pie-modal .ant-modal-body { + text-align: center; + padding: 0 0 42px; +} +.pie-modal .ant-modal-footer { + border: none; + text-align: center; + padding: 0; +} + +.pie-modal .ant-btn { + background: #1c39bb !important; + color: white; + font-size: 16px; + font-weight: semi-bold; + margin: 10px; +} + .ant-breadcrumb a, .ant-breadcrumb .current, .ant-breadcrumb-link, @@ -577,3 +634,10 @@ tr:first-child { .my-custom-popover .ant-popover-inner { width: 1000px; } + +.icon-wrapper { + width: 13px; + height: 13px; + padding-top: 5px; + margin-right: 10px; +} diff --git a/src/containers/A_monitor/useApiData.js b/src/containers/A_monitor/useApiData.js new file mode 100644 index 0000000..f3c009f --- /dev/null +++ b/src/containers/A_monitor/useApiData.js @@ -0,0 +1,24 @@ +import { useState, useEffect } from "react"; + +function useApiData(url) { + const [data, setData] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + useEffect(() => { + fetch(url) + .then((response) => response.json()) + .then((data) => { + setData(data); + setLoading(false); + }) + .catch((error) => { + setError(error); + setLoading(false); + }); + }, [url]); + + return { data, loading, error }; +} + +export default useApiData; From 1142316690b0384bbbb3ed8dd101d813490b6c2f Mon Sep 17 00:00:00 2001 From: Andrew-Pohl <55916961+Andrew-Pohl@users.noreply.github.com> Date: Mon, 11 Sep 2023 10:05:30 +0100 Subject: [PATCH 56/78] Add BSC column --- src/assets/images/bsc.png | Bin 0 -> 2622 bytes src/commonFunctions.js | 3 +- src/containers/A_monitor/activepage.js | 42 ++++++++++++++++++++++++ src/containers/A_monitor/monitorpage.js | 42 ++++++++++++++++++++++++ 4 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 src/assets/images/bsc.png diff --git a/src/assets/images/bsc.png b/src/assets/images/bsc.png new file mode 100644 index 0000000000000000000000000000000000000000..c3b459e9720190915f30c15967cf79d97b8f1cc5 GIT binary patch literal 2622 zcmc(fc{J2}AIE<~A|p%J)yg%R1`Mf@#??0dKeP3_ay^;qc z0RY(R?&j<-REK{Z2~nXfZN9xF6txR({$2o(ssjKSnE=2MhBAl%kYoY?q%Z)mEdl@~ zbP3ka9sooEU(Y}nVFINU3BE^y&5}D6LB*{XHlccmE zg~|Vi-Li+$Dn$`KtlOBin9o{#Ozk$Jv`B#M2cfA%nDI>@5Ww^qX!0uf;Q$3ILm&3z zZg&Xyuz=6wZsY00zLeHIv|beZdpVy=<8!I(l^3*L3lOiyoJoh7O9DO@hL)JqX(0YE z1-Fkec9yp@z@v^sgjk3W$D>UMgoSoKf_QcIYLx(H^VuZUd=9nq2(?p}HJ?jq5eM58 zpousE%;FGV(LOrRK00!UuX(gdXyP*1rU-u6Pygfvc4+chL>@T8_NhnAvN|nt#A&Z?NXG8J|OWluukz zGkwU7+GW6AD&%u^Xni&moE$WMkYfV58}g2XgrFu@s>8= zD1bT4uPGd&(08H_x^ajN(8Lw6O`g46!Wa$VlDnX(B=$-f_~9VTm}h=X2HRC=1I~OH zVt&2O7&*;ae8OI>ruA9#XatCGiGr1eS*x^uI~ZEzfur2*PWqrLwM(D7iMtwDF)N$_ zON_sFfKdOo_F2ai;lGjD{8`rr{hPd8?UX@?sdaZjHlYO;i~cUdQmCk`o$0vySA!5k zM0mJ5pOBq8Mi*YhG45V2;_G{m64sVOjfaHOCpO{k>=+o_U0ry?LBU12gIO?r&VCV* z_-A=}`L9L8CU-8xCx&c(j;aYMc3Vt|D_--XkQBmnibu5yeDlrpnmj+7DHs^o8EWDT z{oXZxk@s@pMk}Sg>%SSCCfFJoNyFPfxRZ}PBUY9#GG!z%yTtBg?h_fq9y@l*y)@h zbAQg*t8~cg{_ZY?@`breTHdF+f);S1FRQO0_5{&>nANnYKB65I=O$YStSd#E{t97N zgF@OHlJ%R2Qkz@q9X~G*ue*+aF*l3KJKntTDEcHOmw8B(cWYb_klzk-hW45*j^N~b z=~mmhz#F{v%G$;pbGD8oy;XUfjJuV$p}TB*DbpbSeef^vqfRH)u{BlBqEk1aa7jjH z|7A5ycGL7Le0-zK`{CyYFb8J$GkVv2r{*^MPvjA1ZcN z?7Q+KEW($AW4w!by6T+t9yGwh6Y-cqLci|q*gw2(rR~-oEfLF`_VIiHMH-)unJ1)y zw=fwjAj54`X)BEsJ7qqq=vxw4BwkWdv1K#5+TjrzzVCOjYcG2hMY*;$-q;*5Zsv>H)L*_ZE(lY+B6#Sz+Lf#_#%mL?_mX z0Ay}+Av<66YgT(W^B+=c;j8`Wl!Lh$Y6IcB0_9l9>B>a8=e{oym!6vD|Cn#I6Gj45 zI$oM<$v8aiZ=L3!?C|*no7*=4w^IWqIn#)gd_s1{%)S)Wu-fK=4X+T4jsiOGjnks% zJw`@%UZ}Kb;urv2{L=akD>672Vmu*wYV`qqce3#~?wxTty5sj;<#EFKheU*HkYGmH zcaV;7QTk%-z~5$82CCP1L$0EWqY-PK+C{4Hkbc$liDNEHz2&KwRU&1v$?tX(@rNVK z&L!77BWwHjI-Zu=JXU8>nvM5yi0i9(QmaIm=qfqV_!r~yD^je)CblQ>()Qikq?Yjl z?;_O2(L-dhT{Z?jRxRIW0{VI)+~V0uXKjsZvLwYTL(J8+e<>ou@HL;W3k0mFzRB?pQwlC+yi%K^39gD^SDE%FGdzU|Emd&Uqil zAt4i;0t$ByR_pX);A9q-FF>|Nyw-PkC?g{L^R+Q9!I;Q!OqA_~#3-QvW+rClMkY2! zrlx@=*0v~1TMLwdiHWU=iJ70quYUvL6Cz`yZ~Sk-NvhaF2KZ0I9{t}8 Y%KYC=a2Fo>2pPcL#oPJSiLg8W1P~T=<^TWy literal 0 HcmV?d00001 diff --git a/src/commonFunctions.js b/src/commonFunctions.js index 137a5c3..04a5f9b 100644 --- a/src/commonFunctions.js +++ b/src/commonFunctions.js @@ -119,11 +119,12 @@ export const getData = async () => { const maxBNBHeight = reduceDown(data2, 'BNB') const maxGAIAHeight = reduceDown(data2, 'GAIA') const maxAVAXHeight = reduceDown(data2, 'AVAX') + const maxBSCHeight = reduceDown(data2, 'BSC') const totalBondedValue = (val.data.map(item => item.bond).reduce((prev, next) => prev + next))/100000000; globalData.totalBondedValue = totalBondedValue; - return {data: val.data, globalData: globalData, maxChainHeights: {BTC: maxBTCHeight, DOGE: maxDogeHeight, ETH: maxEthHeight, LTC: maxLTCHeight, GAIA: maxGAIAHeight, BCH: maxBCHHeight, BNB: maxBNBHeight, AVAX: maxAVAXHeight}} + return {data: val.data, globalData: globalData, maxChainHeights: {BTC: maxBTCHeight, DOGE: maxDogeHeight, ETH: maxEthHeight, LTC: maxLTCHeight, GAIA: maxGAIAHeight, BCH: maxBCHHeight, BNB: maxBNBHeight, AVAX: maxAVAXHeight, BSC: maxBSCHeight}} } export const refreshData = async () => { diff --git a/src/containers/A_monitor/activepage.js b/src/containers/A_monitor/activepage.js index 50eefea..8ab5efd 100644 --- a/src/containers/A_monitor/activepage.js +++ b/src/containers/A_monitor/activepage.js @@ -46,6 +46,7 @@ import bitcoincash from "@iso/assets/images/bitcoincash.png"; import dogecoin from "@iso/assets/images/dogecoin.png"; import gaia from "@iso/assets/images/atom.png"; import avax from "@iso/assets/images/avax.png"; +import bsc from '@iso/assets/images/bsc.png'; import thornode from "@iso/assets/images/thornode.svg"; @@ -1325,6 +1326,40 @@ const NodeTable = ({ /> + +
    clickSortHeader("BSC")} + > +
    + # + +
    +
    clickSortHeader("BSC")} + > +
    + # + +
    +
    \r\n {item.location}\r\n {item.rpc === 'true' ? '*' : 'BAD'}\r\n {item.forced_to_leave === 1 || item.requested_to_leave === 1\r\n ? \"yes\"\r\n : \"-\"}\r\n
    \r\n
    \r\n
    \r\n
      \r\n \r\n \r\n \r\n {renderPageNumbers}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nlet timer = null;\r\n\r\nconst defaulColumns = {\r\n nodes: true,\r\n age: true,\r\n action: true,\r\n isp: true,\r\n bond: true,\r\n providers: true,\r\n location: true,\r\n leave: true,\r\n rewards: true,\r\n apy: true,\r\n slashes: true,\r\n score: true,\r\n version: true,\r\n rpc: true,\r\n bfr: true,\r\n BTC: true,\r\n BNB: true,\r\n ETH: true,\r\n LTC: true,\r\n BCH: true,\r\n DOGE: true,\r\n GAIA: true,\r\n AVAX: true,\r\n BSC: true,\r\n};\r\nexport default class extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isPopoverOpen: false,\r\n chartData: [],\r\n data: [],\r\n globalData: [],\r\n sortBy: \"bond\",\r\n sortDirection: \"desc\",\r\n activeNodes: [],\r\n standByNodes: [],\r\n whitelistedNodes: [],\r\n animateBlockCount: false,\r\n myFavNodes: [],\r\n searchTerm: \"\",\r\n visibleColumns: defaulColumns,\r\n nodesFilter: {},\r\n loading: true,\r\n sortByChain: null,\r\n minX: null,\r\n maxX: null,\r\n };\r\n this.clickSortHeader = this.clickSortHeader.bind(this);\r\n this.handleClickRewards = this.handleClickRewards.bind(this);\r\n this.handleClickSlashes = this.handleClickSlashes.bind(this);\r\n this.handleClickBond = this.handleClickBond.bind(this);\r\n this.handleClickTotalBond = this.handleClickTotalBond.bind(this);\r\n this.handleNodePosition = this.handleNodePosition.bind(this);\r\n }\r\n\r\n handlePopoverVisibility = (visible) => {\r\n this.setState({ isPopoverOpen: visible });\r\n };\r\n\r\n async componentWillMount() {\r\n const myFavNodes = getCookie(\"myFavNodes\");\r\n\r\n const tmp = myFavNodes.length > 0 ? JSON.parse(myFavNodes) : [];\r\n\r\n this.setState({ myFavNodes: tmp });\r\n\r\n this.refreshData();\r\n }\r\n\r\n async refreshData() {\r\n if (this.state.isPopoverOpen) {\r\n return;\r\n }\r\n const data = await getData();\r\n\r\n if (this.state.loading) {\r\n this.setState({ loading: false });\r\n }\r\n\r\n if (!process.env.NODE_ENV || process.env.NODE_ENV === \"development\") {\r\n console.log(\"DEV ONLY: Refresh Data Results: \", data);\r\n }\r\n\r\n this.setState(\r\n {\r\n data: data.data,\r\n globalData: data.globalData,\r\n maxChainHeights: data.maxChainHeights,\r\n animateBlockCount: false,\r\n },\r\n () => this.setData()\r\n ); //Change animateBlockCount to true here for animation\r\n }\r\n\r\n componentDidMount() {\r\n timer = setInterval(() => {\r\n this.setState({ animateBlockCount: false }, () => this.refreshData());\r\n //this.refreshData()\r\n }, 6000);\r\n }\r\n\r\n componentWillUnmount() {\r\n clearInterval(timer);\r\n }\r\n\r\n addToFav(address) {\r\n //setCookie('myFavNodes', '')\r\n //return\r\n\r\n //Below works to add, but need to check if already exists, and if so remove\r\n\r\n const myFavNodes = getCookie(\"myFavNodes\"); //JSON.parse(\r\n\r\n if (myFavNodes.length === 0) {\r\n //in here no current fav nodes\r\n const singleAddress = JSON.stringify([address]);\r\n setCookie(\"myFavNodes\", singleAddress);\r\n this.setState({ myFavNodes: singleAddress }, () => this.setData());\r\n } else {\r\n //If we already have some fav nodes\r\n const newFaveNodes = JSON.parse(myFavNodes);\r\n\r\n //Need to check if already exists\r\n if (newFaveNodes.indexOf(address) > -1) {\r\n //In the array!\r\n\r\n const newArrayWithRemove = newFaveNodes.filter(\r\n (item) => item !== address\r\n );\r\n\r\n const newFaveNodesNew = JSON.stringify(newArrayWithRemove);\r\n this.setState({ myFavNodes: newArrayWithRemove }, () => this.setData());\r\n setCookie(\"myFavNodes\", newFaveNodesNew);\r\n } else {\r\n //Not in the array\r\n newFaveNodes[newFaveNodes.length] = address;\r\n\r\n const newFaveNodesNew = JSON.stringify(newFaveNodes);\r\n\r\n this.setState({ myFavNodes: newFaveNodes }, () => this.setData());\r\n setCookie(\"myFavNodes\", newFaveNodesNew);\r\n }\r\n }\r\n }\r\n\r\n returnSearchedData(data) {\r\n if (this.state.searchTerm === \"\") {\r\n return data;\r\n } else {\r\n const filteredNodes = data.filter((item) => {\r\n return (\r\n item.node_address.includes(this.state.searchTerm) ||\r\n item.bondProvidersString.includes(this.state.searchTerm)\r\n );\r\n });\r\n return filteredNodes;\r\n }\r\n }\r\n\r\n setData() {\r\n // Grab our state so we can mutate it\r\n let myData = JSON.parse(JSON.stringify(this.state.data));\r\n\r\n // Add faves to the data, then we can sort by then below\r\n const newItems = myData.map((item) => {\r\n if (this.state.myFavNodes.includes(item.node_address)) {\r\n item.fave = 1;\r\n } else {\r\n item.fave = 0;\r\n }\r\n return item;\r\n });\r\n\r\n // Filter for our three tables\r\n let activeNodes = newItems.filter((item) => item.status === \"Active\");\r\n let standbyNodes = newItems.filter(\r\n (item) =>\r\n (item.status === \"Standby\" || item.status === \"Ready\") &&\r\n item.version === this.state.globalData.maxVersion\r\n );\r\n\r\n // Create an array of all nodes that are active and standby\r\n const active_standy_nodes = [\r\n ...activeNodes.map((item) => item.node_address),\r\n ...standbyNodes.map((item) => item.node_address),\r\n ];\r\n\r\n // White listed are all other nodes which are not active or on standby\r\n let whitelisted = newItems.filter(\r\n (item) => !active_standy_nodes.includes(item.node_address)\r\n );\r\n\r\n activeNodes = this.findChurnOuts(activeNodes); // Add in the actions for churning\r\n standbyNodes = this.findChurnIns(standbyNodes); // Add in the actions for nodes churning in\r\n\r\n // Filter here if any searchTerm from the search bar\r\n activeNodes = this.returnSearchedData(activeNodes);\r\n standbyNodes = this.returnSearchedData(standbyNodes);\r\n whitelisted = this.returnSearchedData(whitelisted);\r\n\r\n // Sort and add our favs to the top\r\n let activeNodesSorted = this.sortData(\r\n activeNodes,\r\n this.state.sortBy,\r\n this.state.sortDirection,\r\n false\r\n );\r\n const favActiveNodesSorted = activeNodesSorted.filter(\r\n (item) => item.fave === 1\r\n ); // Get our favourites\r\n activeNodesSorted = activeNodesSorted.filter((item) => item.fave === 0); // Get our non favourites\r\n activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted]; // Join faves at top with non favourites\r\n\r\n const standBySorted = this.sortData(\r\n standbyNodes,\r\n this.state.sortBy,\r\n this.state.sortDirection,\r\n false\r\n );\r\n const whitelistedSorted = this.sortData(\r\n whitelisted,\r\n this.state.sortBy,\r\n this.state.sortDirection,\r\n false\r\n );\r\n\r\n this.setState({\r\n activeNodes: activeNodesSorted,\r\n standByNodes: standBySorted,\r\n whitelistedNodes: whitelistedSorted,\r\n });\r\n }\r\n\r\n onColumnUpdate(config) {\r\n this.setState({ visibleColumns: config });\r\n }\r\n\r\n onNodesFilter(key) {\r\n this.setState((prevState) => ({\r\n nodesFilter: {\r\n ...prevState.nodesFilter,\r\n [key]: !prevState.nodesFilter[key],\r\n },\r\n }));\r\n }\r\n\r\n /*\r\nSplit the data into over 300ks and under 300ks\r\nWith the over 300ks, take the top 3 if they exist and apply churn in action\r\nIf 4 nodes churn in instead of 3 each time, add another row\r\n*/\r\n findChurnIns(standbyNodes) {\r\n if (standbyNodes.length === 0) return []; //Stops filter from breaking when search returns 0\r\n\r\n const over300 = standbyNodes.filter((item) => item.bond >= 30000000000000);\r\n const over300Sorted = this.sortData(over300, \"bond\", \"desc\");\r\n\r\n if (over300Sorted.length > 0) {\r\n over300Sorted[Math.min(0, over300Sorted.length - 1)].action = \"Churn In\";\r\n over300Sorted[Math.min(1, over300Sorted.length - 1)].action = \"Churn In\";\r\n over300Sorted[Math.min(2, over300Sorted.length - 1)].action = \"Churn In\";\r\n over300Sorted[Math.min(3, over300Sorted.length - 1)].action = \"Churn In\";\r\n over300Sorted[Math.min(4, over300Sorted.length - 1)].action = \"Churn In\";\r\n }\r\n const under300 = standbyNodes.filter((item) => item.bond < 30000000000000);\r\n\r\n return [...over300Sorted, ...under300];\r\n }\r\n\r\n /*\r\nLowest Bond\r\nOldest Node\r\nWorst Performer (Can't churn out if just churned in, one cycle grace period)\r\n*/\r\n findChurnOuts(activeNodes) {\r\n if (activeNodes.length === 0) return []; //Stops filter from breaking when search returns 0\r\n\r\n let activeNodesSorted = this.sortData(activeNodes, \"age\", \"desc\");\r\n activeNodesSorted[0].action = \"Oldest\";\r\n\r\n activeNodesSorted = this.sortData(activeNodes, \"bond\", \"asc\");\r\n activeNodesSorted[0].action = \"Smallest Bond\";\r\n\r\n activeNodesSorted = this.sortData(activeNodes, \"score\", \"asc\", true);\r\n //we set the 'Worst Performing' tag in the sortData function\r\n\r\n this.calcBadValidatorRedline(activeNodes);\r\n\r\n return activeNodesSorted;\r\n }\r\n\r\n calcBadValidatorRedline(activeNodes) {\r\n //Only get nodes with slashes greater than 100\r\n const greater100Slashes = activeNodes.filter(\r\n (item) => item.slash_points > 100\r\n );\r\n //Add all the scores together for thes nodes\r\n const sum = greater100Slashes.reduce((accumulator, object) => {\r\n return accumulator + parseFloat(object.score);\r\n }, 0);\r\n //Find the average\r\n const averageScore = sum / (greater100Slashes.length + 1);\r\n\r\n const validatorLine =\r\n averageScore / this.state.globalData.BadValidatorRedline;\r\n\r\n activeNodes.map((item) => {\r\n if (item.score < validatorLine) {\r\n item.action = \"Bad Redline\";\r\n }\r\n return 0;\r\n });\r\n }\r\n\r\n /*\r\nSort by either string or number\r\nWe use string sort function if value is one of the arrays else do second sort number\r\n*/\r\n sortData(data, value = null, direction = null, worst_perform = false) {\r\n const toSortBy = value === null ? this.state.sortBy : value;\r\n let newData = [];\r\n if (this.state.sortChain) {\r\n // New sorting logic for chains\r\n const chain = toSortBy;\r\n newData = [...data].sort((a, b) => {\r\n const deltaA = a.obchains[chain] - this.state.maxChainHeights[chain];\r\n const deltaB = b.obchains[chain] - this.state.maxChainHeights[chain];\r\n if (deltaA === deltaB) {\r\n return a[\"node_address\"].localeCompare(b[\"node_address\"]);\r\n }\r\n return deltaA - deltaB;\r\n });\r\n } else {\r\n if (\r\n [\r\n \"node\",\r\n \"isp\",\r\n \"location\",\r\n \"version\",\r\n \"action\",\r\n \"node_address\",\r\n ].includes(toSortBy)\r\n ) {\r\n //This sort function for strings\r\n newData = data.sort((a, b) => a[toSortBy].localeCompare(b[toSortBy]));\r\n } else if (toSortBy === \"bond_providers\") {\r\n //This is for bond provider sort as we need to go another layer deep in the object\r\n newData = data.sort(\r\n (a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length\r\n );\r\n } else if (worst_perform === true) {\r\n //This is for when we are sorting for action of worst performance as we want to exclude any with age under 3 days\r\n const ageCutOffDays = 3;\r\n const a = data.filter((item) => parseFloat(item.age) > ageCutOffDays);\r\n const b = data.filter((item) => parseFloat(item.age) <= ageCutOffDays);\r\n const aSorted = a.sort((a, b) => b[toSortBy] - a[toSortBy]);\r\n\r\n aSorted[aSorted.length - 1].action = \"Worst Performing\";\r\n newData = [...aSorted, ...b];\r\n } else {\r\n //This sort function for numbers\r\n //When sorting, if values are the same, sort by node_address\r\n newData = data.sort(function (a, b) {\r\n if (a[toSortBy] === b[toSortBy]) {\r\n return a[\"node_address\"].localeCompare(b[\"node_address\"]);\r\n }\r\n return a[toSortBy] > b[toSortBy] ? 1 : -1;\r\n });\r\n }\r\n }\r\n //If we pass it a direction, we set it here, if not we take it from the state\r\n const toDirection =\r\n direction === null ? this.state.sortDirection : direction;\r\n if (toDirection === \"desc\") {\r\n newData.reverse();\r\n }\r\n\r\n return newData;\r\n }\r\n\r\n clickSortHeader(item) {\r\n const isChain = [\r\n \"BNB\",\r\n \"BTC\",\r\n \"ETH\",\r\n \"LTC\",\r\n \"BCH\",\r\n \"DOGE\",\r\n \"GAIA\",\r\n \"AVAX\",\r\n \"BSC\",\r\n ].includes(item);\r\n const direction =\r\n this.state.sortBy !== item\r\n ? \"desc\"\r\n : this.state.sortDirection === \"desc\"\r\n ? \"asc\"\r\n : \"desc\";\r\n this.setState(\r\n { sortBy: item, sortDirection: direction, sortChain: isChain },\r\n () => this.setData()\r\n );\r\n window.setTimeout(() => {}, 200);\r\n }\r\n\r\n sortColour(item) {\r\n return \"#ffffff\";\r\n }\r\n\r\n whichHeart(address) {\r\n return this.state.myFavNodes.includes(address) ? heartFull : heartBlank;\r\n }\r\n\r\n handleNodePosition = async (node_address) => {\r\n this.setState({ isPopoverOpen: true });\r\n const url = `https://api.liquify.com/thor/api/grabPosition=${node_address}`;\r\n try {\r\n const response = await fetch(url);\r\n const rawData = await response.json();\r\n if (!rawData || Object.keys(rawData).length === 0) {\r\n this.setState({ chartData: null });\r\n } else {\r\n const maxData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Number(y.max),\r\n }));\r\n\r\n const positionData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Number(y.position),\r\n }));\r\n\r\n const allXValues = [...maxData, ...positionData].map(\r\n (dataPoint) => dataPoint.x\r\n );\r\n const minX = Math.min(...allXValues);\r\n const maxX = Math.max(...allXValues);\r\n\r\n this.setState({ maxData, positionData, minX, maxX });\r\n }\r\n } catch (error) {\r\n console.error(`Error fetching data from ${url}:`, error);\r\n }\r\n };\r\n\r\n handleClickSlashes = async (node_address) => {\r\n this.setState({ isPopoverOpen: true });\r\n const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`;\r\n try {\r\n const response = await fetch(url);\r\n const rawData = await response.json();\r\n if (!rawData || Object.keys(rawData).length === 0) {\r\n this.setState({ chartData: null });\r\n } else {\r\n const chartData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Number(y),\r\n }));\r\n this.setState({ chartData });\r\n }\r\n } catch (error) {\r\n console.error(`Error fetching data from ${url}:`, error);\r\n }\r\n };\r\n\r\n handleMaxEffectiveStake = async () => {\r\n this.setState({ isPopoverOpen: true });\r\n const url = `https://api.liquify.com/thor/api/maxEffectiveStake`;\r\n try {\r\n const response = await fetch(url);\r\n const rawData = await response.json();\r\n if (!rawData || Object.keys(rawData).length === 0) {\r\n this.setState({ chartData: null });\r\n } else {\r\n const chartData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Math.round(Number(y) / 100000000),\r\n }));\r\n\r\n this.setState({ chartData });\r\n }\r\n } catch (error) {\r\n console.error(`Error fetching data from ${url}:`, error);\r\n }\r\n };\r\n\r\n handleClickTotalBond = async () => {\r\n this.setState({ isPopoverOpen: true });\r\n const url = `https://api.liquify.com/thor/api/totalBond`;\r\n try {\r\n const response = await fetch(url);\r\n const rawData = await response.json();\r\n if (!rawData || Object.keys(rawData).length === 0) {\r\n this.setState({ chartData: null });\r\n } else {\r\n const chartData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Math.round(Number(y) / 100000000),\r\n }));\r\n\r\n this.setState({ chartData });\r\n }\r\n } catch (error) {\r\n console.error(`Error fetching data from ${url}:`, error);\r\n }\r\n };\r\n\r\n handleClickRewards = async (node_address) => {\r\n this.setState({ isPopoverOpen: true });\r\n const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`;\r\n try {\r\n const response = await fetch(url);\r\n const rawData = await response.json();\r\n if (!rawData || Object.keys(rawData).length === 0) {\r\n this.setState({ chartData: null });\r\n } else {\r\n const chartData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Math.round(Number(y) / 100000000),\r\n }));\r\n this.setState({ chartData });\r\n }\r\n } catch (error) {\r\n console.error(`Error fetching data from ${url}:`, error);\r\n }\r\n };\r\n\r\n handleClickBond = async (node_address) => {\r\n this.setState({ isPopoverOpen: true });\r\n const url = `https://api.liquify.com/thor/api/grabBond=${node_address}`;\r\n try {\r\n const response = await fetch(url);\r\n const rawData = await response.json();\r\n if (!rawData || Object.keys(rawData).length === 0) {\r\n this.setState({ chartData: null });\r\n } else {\r\n const chartData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Math.round(Number(y) / 100000000),\r\n }));\r\n this.setState({ chartData });\r\n }\r\n } catch (error) {\r\n console.error(`Error fetching data from ${url}:`, error);\r\n }\r\n };\r\n\r\n searchBar() {\r\n return (\r\n
    \r\n \r\n this.setState(\r\n { searchTerm: event.target.value.trim().toLowerCase() },\r\n () => this.setData()\r\n )\r\n }\r\n prefix={}\r\n />\r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n data,\r\n nodesFilter,\r\n visibleColumns,\r\n activeNodes,\r\n standByNodes,\r\n whitelistedNodes,\r\n } = this.state;\r\n\r\n const noNodesFilter =\r\n !nodesFilter.active && !nodesFilter.standby && !nodesFilter.orthers;\r\n const showActive =\r\n isEmpty(nodesFilter) || noNodesFilter || nodesFilter.active;\r\n const showStandby =\r\n isEmpty(nodesFilter) || noNodesFilter || nodesFilter.standby;\r\n const showOthers =\r\n isEmpty(nodesFilter) || noNodesFilter || nodesFilter.orthers;\r\n\r\n const chartDataConfig = this.state.chartData\r\n ? {\r\n datasets: [\r\n {\r\n label: \"Value\",\r\n data: this.state.chartData,\r\n fill: false,\r\n backgroundColor: \"rgb(28, 57, 182)\",\r\n borderColor: \"rgba(28, 57, 187, 0.2)\",\r\n tension: 0,\r\n },\r\n ],\r\n }\r\n : {};\r\n\r\n const maxPositionChartDataConfig =\r\n this.state.maxData && this.state.positionData\r\n ? {\r\n datasets: [\r\n {\r\n label: \"Max\",\r\n data: this.state.maxData,\r\n backgroundColor: \"blue\",\r\n pointRadius: 5,\r\n },\r\n {\r\n label: \"Position\",\r\n data: this.state.positionData,\r\n backgroundColor: \"orange\",\r\n pointRadius: 5,\r\n },\r\n ],\r\n }\r\n : {};\r\n\r\n const maxStakeOptions = this.state.chartData\r\n ? {\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"linear\",\r\n position: \"bottom\",\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Block Height\",\r\n },\r\n ticks: {\r\n autoSkip: true,\r\n maxTicksLimit: 10,\r\n min: Math.min(...this.state.chartData.map((data) => data.x)),\r\n max: Math.max(...this.state.chartData.map((data) => data.x)),\r\n stepSize: 20000,\r\n callback: function (value) {\r\n return value;\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Max Effective Stake (ᚱ)\",\r\n },\r\n },\r\n ],\r\n },\r\n }\r\n : {};\r\n\r\n const totalBondOptions = this.state.chartData\r\n ? {\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"linear\",\r\n position: \"bottom\",\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Block Height\",\r\n },\r\n ticks: {\r\n autoSkip: true,\r\n maxTicksLimit: 10,\r\n min: Math.min(...this.state.chartData.map((data) => data.x)),\r\n max: Math.max(...this.state.chartData.map((data) => data.x)),\r\n stepSize: 20000,\r\n callback: function (value) {\r\n return value;\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Total Bond Amount (ᚱ)\",\r\n },\r\n },\r\n ],\r\n },\r\n }\r\n : {};\r\n\r\n const maxPositionOptions = this.state.chartData\r\n ? {\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"linear\",\r\n position: \"bottom\",\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Block Height\",\r\n },\r\n ticks: {\r\n autoSkip: true,\r\n maxTicksLimit: 10,\r\n min: this.state.minX,\r\n max: this.state.maxX,\r\n stepSize: 20000,\r\n callback: function (value) {\r\n return value;\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Position\",\r\n },\r\n ticks: {\r\n min: 0,\r\n max: 100,\r\n },\r\n },\r\n ],\r\n },\r\n }\r\n : {};\r\n\r\n const slashesOptions = this.state.chartData\r\n ? {\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"linear\",\r\n position: \"bottom\",\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Block Height\",\r\n },\r\n ticks: {\r\n callback: function (value, index, values) {\r\n return value;\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Slashes Value\",\r\n },\r\n },\r\n ],\r\n },\r\n }\r\n : {};\r\n\r\n const rewardsOptions = this.state.chartData\r\n ? {\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"linear\",\r\n position: \"bottom\",\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Block Height\",\r\n },\r\n ticks: {\r\n callback: function (value, index, values) {\r\n return value;\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Reward Amount (ᚱ)\",\r\n },\r\n },\r\n ],\r\n },\r\n }\r\n : {};\r\n\r\n const bondOptions = this.state.chartData\r\n ? {\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"linear\",\r\n position: \"bottom\",\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Block Height\",\r\n },\r\n ticks: {\r\n autoSkip: true,\r\n maxTicksLimit: 10,\r\n min: Math.min(...this.state.chartData.map((data) => data.x)),\r\n stepSize: 20000,\r\n callback: function (value, index, values) {\r\n return value;\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Bond Amount (ᚱ)\",\r\n },\r\n },\r\n ],\r\n },\r\n }\r\n : {};\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n Thornode Monitor\r\n
    \r\n
    \r\n this.onNodesFilter(\"active\")}\r\n >\r\n \r\n
    \r\n this.onNodesFilter(\"standby\")}\r\n >\r\n \r\n
    \r\n this.onNodesFilter(\"orthers\")}\r\n >\r\n \r\n
    \r\n \r\n \r\n \r\n {loading && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n {!loading && (\r\n
    \r\n }>\r\n Dashboard\r\n \r\n Active Nodes\r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n {showActive && (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n {this.searchBar()}\r\n\r\n \r\n
    \r\n\r\n {activeNodes.length > 0 && (\r\n \r\n )}\r\n {activeNodes.length === 0 && (\r\n
    \r\n
    \r\n No Active Data Available!\r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n\r\n {showStandby && (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n {!showActive && (\r\n <>\r\n {this.searchBar()}\r\n \r\n \r\n )}\r\n
    \r\n\r\n {standByNodes.length > 0 && (\r\n \r\n )}\r\n {standByNodes.length === 0 && (\r\n
    \r\n
    \r\n No Standby Data Available!\r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n {showOthers && (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n {!showActive && !showStandby && (\r\n <>\r\n {this.searchBar()}\r\n \r\n \r\n )}\r\n
    \r\n\r\n {whitelistedNodes.length > 0 && (\r\n \r\n )}\r\n {whitelistedNodes.length === 0 && (\r\n
    \r\n
    \r\n No Other Data Available!\r\n
    \r\n
    \r\n )}\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n \"#\"\r\n \r\n \r\n \"#\"\r\n \r\n
    \r\n Built by:\r\n \"#\"\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n"],"names":["leaveIcon","_jsxs","style","marginTop","focusable","preserveAspectRatio","xmlns","fill","width","height","viewBox","className","children","_jsx","d","Header","_Layout","Footer","Content","headerStyle","cursor","padding","fontSize","color","backgroundColor","fontWeight","tdStyle","minWidth","textAlign","trStyle","iconStyle","paddingLeft","paddingRight","copyToClipWithPopup","_x","_x2","_copyToClipWithPopup","_asyncToGenerator","_regeneratorRuntime","mark","_callee","msg","ip","wrap","_context","prev","next","copyToClipboard","popUpModal","stop","apply","arguments","str","navigator","clipboard","writeText","Promise","reject","Modals","info","title","content","ModalContent","concat","onOk","okText","cancelText","SortIcon","_ref","column","sortBy","sortDirection","src","arrowDownIcon","Icons","_ref2","address","ip_address","addToFav","whichHeart","firstURL","secondURL","marginLeft","Popover","trigger","href","target","rel","verticalAlign","stroke","onClick","alt","GlobalData","_ref3","_globalData$coingecko","_globalData$coingecko2","_globalData$coingecko3","_globalData$coingecko4","_chartDataConfig$data","_chartDataConfig$data2","_chartDataConfig$data3","_chartDataConfig$data4","_globalData$timeUntil","_globalData$timeUntil2","_globalData$timeUntil3","globalData","state","animateBlockCount","handleClickTotalBond","chartData","chartDataConfig","totalBondOptions","handlePopoverVisibility","handleMaxEffectiveStake","maxStakeOptions","timeToDisplay","msgTitle","churnTry","retiring","timeUntilRetry","days","hours","minutes","_globalData$timeUntil4","_globalData$timeUntil5","_globalData$timeUntil6","timeUntilChurn","_Fragment","blockIcon","parseInt","maxHeight","toLocaleString","churnsIcon","bondIcon","activeNodes","length","map","item","bond","reduce","marcketCapIcon","coingecko","market_cap","timeIcon","total_volume","datasets","data","CustomLineChart","options","JSON","stringify","overlayClassName","onVisibleChange","visible","verticalTopIcon","maxEffectiveStake","chartLineIcon","CoinGeckoData","_ref4","_globalData$coingecko5","_globalData$coingecko6","_globalData$coingecko7","_globalData$coingecko8","_globalData$coingecko9","_globalData$coingecko10","_globalData$coingecko11","runeUsdtIcon","current_price","highTradingIcon","high_24h","lowTradingIcon","low_24h","mcapRankIcon","market_cap_rank","totalSupplyIcon","total_supply","ReturnIspImage","_ref5","isp","imageAWS","imageDO","imageGCP","imageAZURE","imageHETZNER","imageVULTR","imageLeaseweb","imageDatacamp","imageComcast","imageChoopa","imageChartercoms","imageATandT","imageZenlayer","imageAljeel","imageHostinger","ChainTD","_ref6","chain","obchains","maxChainHeights","delta","isNaN","toString","BondProviderPopOver","_ref7","totalBond","a","b","index","display","justifyContent","bond_address","substring","toFixed","NodeTable","_ref8","nodeData","clickSortHeader","handleClickBond","handleClickRewards","handleClickSlashes","sortColour","chains","bondOptions","rewardsOptions","slashesOptions","maxPositionOptions","maxPositionChartDataConfig","handleNodePosition","_ref8$visibleColumns","visibleColumns","_objectSpread","defaulColumns","_ref8$sortBy","_ref8$sortDirection","_useState","useState","_useState2","_slicedToArray","currentPage","setCurrentPage","_useState3","_useState4","itemsPerPage","setItemsPerPage","totalPages","Math","ceil","pageNumbers","i","push","handleClick","event","Number","id","renderPageNumbers","number","indexOfLastItem","indexOfFirstItem","currentItems","slice","getHeaderClassName","key","getCellClassName","_Select","defaultValue","showSearch","onChange","value","borderRadius","dropdownMatchSelectWidth","label","borderWidth","borderColor","borderStyle","marginRight","alignItems","binance","bitcoin","eth","litecoin","bitcoincash","dogecoin","gaia","avax","bsc","_maxPositionChartData","_chartDataConfig$data5","_chartDataConfig$data6","_chartDataConfig$data7","_chartDataConfig$data8","_chartDataConfig$data9","_chartDataConfig$data10","maxWidth","node_address","CustomScatterChart","DotChartOutlined","age","action","location","HistoryOutlined","bond_providers","providers","current_award","apy","slash_points","score","version","forced_to_leave","requested_to_leave","rpc","bifrost","prevPage","LeftOutlined","RightOutlined","timer","nodes","leave","rewards","slashes","bfr","BTC","BNB","ETH","LTC","BCH","DOGE","GAIA","AVAX","BSC","_default","_Component","_componentWillMount","_refreshData","_inherits","_super","_createSuper","props","_ref9","_ref14","_ref23","_ref26","_this","_classCallCheck","call","setState","isPopoverOpen","_x3","_callee2","url","response","rawData","maxData","positionData","allXValues","minX","maxX","_context2","fetch","sent","json","Object","keys","entries","_ref10","_ref11","x","y","max","_ref12","_ref13","position","_toConsumableArray","dataPoint","min","t0","console","error","_x4","_callee3","_context3","_ref15","_ref16","_callee4","_context4","_ref18","_ref19","round","_callee5","_context5","_ref21","_ref22","_x5","_callee6","_context6","_ref24","_ref25","_x6","_callee7","_context7","_ref27","_ref28","standByNodes","whitelistedNodes","myFavNodes","searchTerm","nodesFilter","loading","sortByChain","bind","_assertThisInitialized","_createClass","_callee8","tmp","_context8","getCookie","parse","this","refreshData","_callee9","_this2","_context9","abrupt","getData","setData","_this3","setInterval","clearInterval","_this4","singleAddress","setCookie","newFaveNodes","indexOf","newArrayWithRemove","filter","newFaveNodesNew","_this5","includes","bondProvidersString","_this6","newItems","fave","status","standbyNodes","maxVersion","active_standy_nodes","whitelisted","findChurnOuts","findChurnIns","returnSearchedData","activeNodesSorted","sortData","favActiveNodesSorted","standBySorted","whitelistedSorted","config","prevState","_defineProperty","over300","over300Sorted","under300","calcBadValidatorRedline","greater100Slashes","validatorLine","accumulator","object","parseFloat","BadValidatorRedline","_this7","undefined","direction","worst_perform","toSortBy","newData","sortChain","sort","deltaA","deltaB","localeCompare","aSorted","reverse","_this8","isChain","window","setTimeout","heartFull","heartBlank","_this9","_Input","background","trim","toLowerCase","prefix","SearchOutlined","_this10","_this$state","noNodesFilter","active","standby","orthers","showActive","isEmpty","showStandby","showOthers","tension","pointRadius","scales","xAxes","type","scaleLabel","labelString","ticks","autoSkip","maxTicksLimit","stepSize","callback","yAxes","values","thornode","margin","onNodesFilter","activeIcon","powerIcon","threeDotsIcon","loadingIcon","_Breadcrumb","separator","Item","Link","to","PUBLIC_ROUTE","ACTIVE_DASHBOARD","_Button","searchBar","VisibleColumn","initialConfig","onConfigUpdate","onColumnUpdate","STANDBY_DASHBOARD","OTHER_DASHBOARD","githubIcon","twitterIcon","liquifyLogo","Component","baseKeys","require","getTag","isArguments","isArray","isArrayLike","isBuffer","isPrototype","isTypedArray","hasOwnProperty","prototype","module","exports","splice","tag","size"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/164.80a7ea90.chunk.js b/build/static/js/164.80a7ea90.chunk.js new file mode 100644 index 0000000..e28c42e --- /dev/null +++ b/build/static/js/164.80a7ea90.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkisomorphic=self.webpackChunkisomorphic||[]).push([[164],{19690:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return qe}});i(5819);var n,s=i(87309),a=(i(99587),i(22961)),r=(i(78308),i(74931)),l=i(4942),o=i(93433),c=i(15671),d=i(43144),h=i(97326),u=i(60136),v=i(27277),m=(i(58717),i(57862)),x=i(29439),p=i(1413),g=i(74165),f=i(15861),C=(i(37531),i(25671)),j=i(72791),y=i(66364),b=i.n(y),k=i(34633),N=(i(28353),i(7942)),A=i(77342),Z=i(36269),w=i(29616),D=i(36165),S=i(95002),_=(i(14860),i(19741)),B=i(54077),P=i(39045),H=i(76864),T=i(41938),O=i(11730),M=i(84531),L=i(47788),R=i(12507),V=i(56288),I=i(16891),F=i(56926),E=i(51562),U=i(56093),G=i(70441),z=i(72211),X=i(70491),Q=i(71857),Y=i(55259),J=i(44575),K=i(5753),W=i(61533),q=i(76795),$=i(20618),ee=i(52762),te=i(78031),ie=i(67709),ne=i(92373),se=i(94678),ae=i(92407),re=i(64094),le=i(85167),oe=i(97144),ce=i(25917),de=i(42139),he=i(91225),ue=i(12549),ve=i(99382),me=i(5338),xe=i(47802),pe=i(41843),ge=i(4050),fe=i(91326),Ce=i(20168),je=i(96971),ye=(i(16150),i(56293)),be=i(10623),ke=i(55919),Ne=i(10552),Ae=i(73637),Ze=i(74713),we=i(53411),De=i(57485),Se=i(75219),_e=i(80184),Be=(0,_e.jsxs)("svg",{style:{marginTop:5},focusable:"false",preserveAspectRatio:"xMidYMid meet",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",width:"20",height:"20",viewBox:"0 0 30 30","aria-hidden":"true",className:"sfg",children:[(0,_e.jsx)("path",{d:"M6,30H18a2.0023,2.0023,0,0,0,2-2V25H18v3H6V4H18V7h2V4a2.0023,2.0023,0,0,0-2-2H6A2.0023,2.0023,0,0,0,4,4V28A2.0023,2.0023,0,0,0,6,30Z"}),(0,_e.jsx)("path",{d:"M20.586 20.586L24.172 17 10 17 10 15 24.172 15 20.586 11.414 22 10 28 16 22 22 20.586 20.586z"})]}),Pe=C.Z.Header,He=C.Z.Footer,Te=C.Z.Content,Oe={cursor:"pointer",padding:"12px 15px",fontSize:15,color:"#ffffff",backgroundColor:"rgba(24, 34, 51, 0.4)",height:55,fontWeight:600},Me={minWidth:60,textAlign:"right",fontSize:14,padding:"10px 15px"},Le={height:45},Re={minWidth:25,padding:5,paddingLeft:10,paddingRight:10};function Ve(e,t){return(n=n||(0,f.Z)((0,g.Z)().mark((function e(t,i){return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Ie(i),Fe(t,i);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Ie=function(e){return navigator&&navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(e):Promise.reject("The Clipboard API is not available.")};function Fe(e,t){Z.Z.info({title:(0,_e.jsx)("h3",{children:"Success"}),content:(0,_e.jsx)(S.h,{children:(0,_e.jsxs)("p",{children:[(0,_e.jsx)("strong",{children:"".concat(e," ")})," ","".concat(t)]})}),onOk:function(){},okText:"OK",cancelText:"Cancel",className:"feedback-modal"})}var Ee=function(e){var t=e.column,i=e.sortBy,n=e.sortDirection;return i===t?(0,_e.jsx)("img",{className:"sort-icon ".concat("desc"===n?"down":"up"),src:De.Z,width:12}):null},Ue=function(e){var t=e.address,i=e.ip_address,n=e.addToFav,s=e.whichHeart,a="https://thornode.ninerealms.com/thorchain/node/".concat(t),r="https://viewblock.io/thorchain/address/".concat(t);return(0,_e.jsxs)("span",{style:{height:20,marginLeft:5},className:"icons-wrapper",children:[(0,_e.jsx)(w.Z,{content:"Explore Node",trigger:"hover",children:(0,_e.jsx)("a",{href:r,target:"_blank",rel:"noopener noreferrer",style:{marginLeft:5},children:(0,_e.jsxs)("svg",{focusable:"false",preserveAspectRatio:"xMidYMid meet",style:{verticalAlign:"middle"},width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,_e.jsx)("path",{d:"M8.21201 6.12094C7.93815 5.79037 7.59622 5.52244 7.20939 5.33531C6.82257 5.14818 6.3999 5.04623 5.97006 5.03638C5.54022 5.02653 5.11326 5.10902 4.71815 5.27823C4.32303 5.44745 3.969 5.69944 3.68006 6.01712L1.96996 7.89664C1.45171 8.48651 1.18641 9.25576 1.23118 10.0387C1.27595 10.8217 1.62723 11.5557 2.20934 12.0827C2.79146 12.6097 3.55784 12.8875 4.34342 12.8562C5.12901 12.825 5.87094 12.4872 6.40942 11.9157L7.38417 10.8444",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"}),(0,_e.jsx)("path",{d:"M5.39864 7.52442C5.63159 7.8849 5.93954 8.19119 6.3016 8.42251C6.66366 8.65384 7.07135 8.80479 7.49704 8.86513C7.92272 8.92546 8.35644 8.89377 8.76876 8.77221C9.18109 8.65064 9.56238 8.44204 9.88678 8.16056L11.8067 6.49526C12.3909 5.97045 12.7451 5.23775 12.793 4.45497C12.8409 3.67219 12.5787 2.90196 12.0628 2.31017C11.5469 1.71838 10.8186 1.35238 10.0348 1.291C9.25103 1.22962 8.47442 1.47778 7.87227 1.98201L6.77194 2.93082",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"})]})})}),(0,_e.jsx)(w.Z,{content:"Thornode API",trigger:"hover",children:(0,_e.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",style:{marginLeft:5},children:(0,_e.jsxs)("svg",{focusable:"false",preserveAspectRatio:"xMidYMid meet",style:{verticalAlign:"middle"},width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,_e.jsx)("path",{d:"M10.0209 5.95871L9.20835 6.77121L6.22919 3.79204L7.04169 2.97954C7.44794 2.57327 8.93752 1.8962 10.0209 2.97954C11.1042 4.06288 10.4271 5.55243 10.0209 5.95871Z",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"}),(0,_e.jsx)("path",{d:"M11.375 1.625L10.0208 2.97917",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"}),(0,_e.jsx)("path",{d:"M2.97917 7.04199L3.79167 6.22949L6.77083 9.20866L5.95833 10.0212C5.55208 10.4274 4.0625 11.1045 2.97917 10.0212C1.89583 8.93783 2.57292 7.44827 2.97917 7.04199Z",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"}),(0,_e.jsx)("path",{d:"M6.22919 8.66634L7.31252 7.58301",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"}),(0,_e.jsx)("path",{d:"M1.625 11.3747L2.97917 10.0205",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"}),(0,_e.jsx)("path",{d:"M4.33331 6.77083L5.41665 5.6875",stroke:"currentColor","stroke-width":"1.2","stroke-linecap":"round","stroke-linejoin":"round"})]})})}),(0,_e.jsx)(w.Z,{content:i,title:"IP Address",trigger:"hover",children:(0,_e.jsx)("span",{style:{cursor:"pointer",marginLeft:5},onClick:function(){return Ve("IP Copied to clipboard:",i)},children:(0,_e.jsxs)("svg",{focusable:"false",preserveAspectRatio:"xMidYMid meet",style:{verticalAlign:"middle"},width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,_e.jsx)("path",{d:"M10.2916 1.08301H5.95831C5.81465 1.08301 5.67688 1.14008 5.5753 1.24166C5.47371 1.34324 5.41665 1.48102 5.41665 1.62467C5.41665 1.76833 5.47371 1.90611 5.5753 2.00769C5.67688 2.10927 5.81465 2.16634 5.95831 2.16634H10.2916C10.4353 2.16634 10.5731 2.22341 10.6747 2.32499C10.7762 2.42657 10.8333 2.56435 10.8333 2.70801V6.49967H1.62498C1.48132 6.49967 1.34355 6.55674 1.24196 6.65833C1.14038 6.75991 1.08331 6.89768 1.08331 7.04134V8.12467C1.08331 8.55565 1.25452 8.96898 1.55926 9.27372C1.86401 9.57847 2.27734 9.74967 2.70831 9.74967H4.33331V10.833H2.70831C2.56465 10.833 2.42688 10.8901 2.3253 10.9917C2.22371 11.0932 2.16665 11.231 2.16665 11.3747C2.16665 11.5183 2.22371 11.6561 2.3253 11.7577C2.42688 11.8593 2.56465 11.9163 2.70831 11.9163H10.2916C10.4353 11.9163 10.5731 11.8593 10.6747 11.7577C10.7762 11.6561 10.8333 11.5183 10.8333 11.3747C10.8333 11.231 10.7762 11.0932 10.6747 10.9917C10.5731 10.8901 10.4353 10.833 10.2916 10.833H8.66665V9.74967H10.2916C10.7226 9.74967 11.1359 9.57847 11.4407 9.27372C11.7454 8.96898 11.9166 8.55565 11.9166 8.12467V2.70801C11.9166 2.27703 11.7454 1.86371 11.4407 1.55896C11.1359 1.25421 10.7226 1.08301 10.2916 1.08301ZM7.58331 10.833H5.41665V9.74967H7.58331V10.833ZM10.8333 8.12467C10.8333 8.26833 10.7762 8.40611 10.6747 8.50769C10.5731 8.60927 10.4353 8.66634 10.2916 8.66634H2.70831C2.56465 8.66634 2.42688 8.60927 2.3253 8.50769C2.22371 8.40611 2.16665 8.26833 2.16665 8.12467V7.58301H10.8333V8.12467Z",fill:"currentColor"})," ",(0,_e.jsx)("path",{d:"M3.9044 3.30042L2.78573 4.75234L1.66706 3.30042C1.36512 2.90853 1.36759 2.45798 1.57491 2.09161C1.78501 1.72031 2.21379 1.42871 2.78573 1.42871C3.35767 1.42871 3.78646 1.72031 3.99656 2.09161C4.20388 2.45798 4.20634 2.90853 3.9044 3.30042Z",stroke:"currentColor"}),(0,_e.jsx)("path",{d:"M1.85712 5.57129H3.71426",stroke:"currentColor","stroke-linecap":"round"})]})})}),(0,_e.jsx)("img",{alt:"#",onClick:function(){return n(t)},src:s(t),style:{cursor:"pointer",marginLeft:5,marginTop:2,width:15,height:15}})]})},Ge=function(e){var t,i,n,s,a,r,l,o,c,d,h,u=e.globalData,v=(e.animateBlockCount,e.state),m=(e.chartData,e.handleClickTotalBond),x=e.chartDataConfig,p=e.totalBondOptions,g=e.handlePopoverVisibility,f=e.handleMaxEffectiveStake,C=e.maxStakeOptions,j="",y="";if(null!==u&&void 0!==u&&u.churnTry&&"false"===(null===u||void 0===u?void 0:u.retiring))y="(CHURN) RETRY IN",j="".concat(null===u||void 0===u||null===(c=u.timeUntilRetry)||void 0===c?void 0:c.days,"d ").concat(null===u||void 0===u||null===(d=u.timeUntilRetry)||void 0===d?void 0:d.hours,"h ").concat(null===u||void 0===u||null===(h=u.timeUntilRetry)||void 0===h?void 0:h.minutes,"m");else if("true"===(null===u||void 0===u?void 0:u.retiring))y="(CHURN) CURRENTLY CHURNING",j="Churning";else{var b,k,A;y="(CHURN) TIME UNTIL",j="".concat(null===u||void 0===u||null===(b=u.timeUntilChurn)||void 0===b?void 0:b.days,"d ").concat(null===u||void 0===u||null===(k=u.timeUntilChurn)||void 0===k?void 0:k.hours,"h ").concat(null===u||void 0===u||null===(A=u.timeUntilChurn)||void 0===A?void 0:A.minutes,"m")}return(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:ce.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"CURRENT BLOCK"}),(0,_e.jsx)("div",{className:"overview-item__value-value",children:parseInt(u.maxHeight).toLocaleString()})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:me.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsxs)("div",{className:"overview-item__value-title",children:[y," "]}),(0,_e.jsx)("div",{className:"overview-item__value-value",children:j})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:ue.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"TOTAL BONDED VALUE"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["\u16b1",v.activeNodes.length>0?parseInt(v.activeNodes.map((function(e){return e.bond})).reduce((function(e,t){return e+t}))/1e8).toLocaleString():"0"]})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:xe.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"MARKET CAP"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["$",null===u||void 0===u||null===(t=u.coingecko)||void 0===t||null===(i=t.market_cap)||void 0===i?void 0:i.toLocaleString()]})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:fe.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"24 HR VOLUME"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["$",null===u||void 0===u||null===(n=u.coingecko)||void 0===n||null===(s=n.total_volume)||void 0===s?void 0:s.toLocaleString()]})]})]}),(0,_e.jsx)(w.Z,{content:null!==x&&void 0!==x&&null!==(a=x.datasets)&&void 0!==a&&null!==(r=a[0])&&void 0!==r&&r.data&&x.datasets[0].data.length>0?(0,_e.jsx)(N.Z,{data:x,options:C},JSON.stringify(x)):(0,_e.jsx)("div",{children:"No data available"}),title:"Max Effective Stake Over Time",trigger:"click",overlayClassName:"my-custom-popover",onVisibleChange:function(e){return g(e)},children:(0,_e.jsxs)("div",{className:"overview-item",onClick:f,style:{cursor:"pointer"},children:[(0,_e.jsx)("img",{alt:"#",src:je.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"MAX EFFECTIVE BOND"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["\u16b1",parseInt(u.maxEffectiveStake/1e8).toLocaleString()]})]})]})}),(0,_e.jsx)(w.Z,{content:null!==x&&void 0!==x&&null!==(l=x.datasets)&&void 0!==l&&null!==(o=l[0])&&void 0!==o&&o.data&&x.datasets[0].data.length>0?(0,_e.jsx)(N.Z,{data:x,options:p},JSON.stringify(x)):(0,_e.jsx)("div",{children:"No data available"}),title:"Total Bond Over Time",trigger:"click",overlayClassName:"my-custom-popover",onVisibleChange:function(e){return g(e)},children:(0,_e.jsxs)("div",{className:"overview-item",onClick:m,style:{cursor:"pointer"},children:[(0,_e.jsx)("img",{alt:"#",src:ve.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"TOTAL BOND OVER TIME"}),(0,_e.jsx)("div",{className:"overview-item__value-value",children:"CLICK HERE"})]})]})})]})},ze=function(e){var t,i,n,s,a,r,l,o=e.globalData;return(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:ge.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"PRICE"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["$",null===o||void 0===o||null===(t=o.coingecko)||void 0===t||null===(i=t.current_price)||void 0===i?void 0:i.toLocaleString()]})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:de.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"24 HR HIGH"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["$",null===o||void 0===o||null===(n=o.coingecko)||void 0===n?void 0:n.high_24h]})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:he.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"24 HR LOW"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["$",null===o||void 0===o||null===(s=o.coingecko)||void 0===s?void 0:s.low_24h]})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:pe.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"MARKET CAP RANK"}),(0,_e.jsx)("div",{className:"overview-item__value-value",children:null===o||void 0===o||null===(a=o.coingecko)||void 0===a?void 0:a.market_cap_rank})]})]}),(0,_e.jsxs)("div",{className:"overview-item",children:[(0,_e.jsx)("img",{alt:"#",src:Ce.Z,className:"overview-item__icon"}),(0,_e.jsxs)("div",{className:"overview-item__value",children:[(0,_e.jsx)("div",{className:"overview-item__value-title",children:"TOTAL SUPPLY"}),(0,_e.jsxs)("div",{className:"overview-item__value-value",children:["\u16b1",null===o||void 0===o||null===(r=o.coingecko)||void 0===r||null===(l=r.total_supply)||void 0===l?void 0:l.toLocaleString()]})]})]})]})},Xe=function(e){var t=e.isp,i={width:25,height:25};return"Amazon.com, Inc."===t||"Amazon Technologies Inc."===t||"Amazon.com"===t?(0,_e.jsx)("img",{alt:"#",src:V,style:i}):"DigitalOcean, LLC"===t||"DigitalOcean"===t?(0,_e.jsx)("img",{alt:"#",src:R,style:i}):"Google LLC"===t?(0,_e.jsx)("img",{alt:"#",src:I,style:i}):"Microsoft Corporation"===t?(0,_e.jsx)("img",{alt:"#",src:F,style:i}):"Hetzner Online GmbH"===t?(0,_e.jsx)("img",{alt:"#",src:E,style:i}):"The Constant Company"===t||"The Constant Company, LLC"===t?(0,_e.jsx)("img",{alt:"#",src:U,style:i}):"Leaseweb UK Limited"===t||"Leaseweb USA, Inc."===t?(0,_e.jsx)("img",{alt:"#",src:G,style:i}):"Datacamp Limited"===t?(0,_e.jsx)("img",{alt:"#",src:z,style:i}):"Comcast Cable Communications, LLC"===t?(0,_e.jsx)("img",{alt:"#",src:X,style:i}):"Choopa"===t?(0,_e.jsx)("img",{alt:"#",src:Q,style:i}):"Charter Communications Inc"===t?(0,_e.jsx)("img",{alt:"#",src:Y,style:i}):"AT&T Services, Inc."===t?(0,_e.jsx)("img",{alt:"#",src:J,style:i}):"Zenlayer Inc"===t?(0,_e.jsx)("img",{alt:"#",src:K,style:i}):"Aljeel Aljadeed For Technology"===t?(0,_e.jsx)("img",{alt:"#",src:W,style:i}):"Hostinger International Limited"===t?(0,_e.jsx)("img",{alt:"#",src:q,style:i}):"-"},Qe=function(e){var t=e.chain,i=e.obchains,n=e.maxChainHeights,s=i[t]-n[t];return(0,_e.jsx)("td",{style:{textAlign:"center",color:s<-5||isNaN(s)?"red":null},children:0===s?"OK":s.toString()})},Ye=function(e){var t=e.data,i=t.map((function(e){return parseInt(e.bond)})).reduce((function(e,t){return e+t}),0);return t.map((function(e,t){return(0,_e.jsxs)("div",{style:{width:200,display:"flex",justifyContent:"space-between"},children:[(0,_e.jsx)("span",{children:e.bond_address.substring(e.bond_address.length-4,e.bond_address.length)}),(0,_e.jsxs)("span",{children:[(e.bond/i*100).toFixed(2),"%"]}),(0,_e.jsxs)("span",{children:["\u16b1",parseInt((e.bond/1e8).toFixed()).toLocaleString()]})]},t)}))},Je=function(e){for(var t=e.handlePopoverVisibility,i=e.nodeData,n=e.clickSortHeader,s=e.handleClickBond,a=e.handleClickRewards,r=e.handleClickSlashes,l=e.sortColour,o=e.maxChainHeights,c=e.chains,d=e.addToFav,h=e.whichHeart,u=e.chartDataConfig,v=e.bondOptions,g=e.rewardsOptions,f=e.slashesOptions,C=e.maxPositionOptions,y=e.maxPositionChartDataConfig,b=e.handleNodePosition,Z=e.visibleColumns,D=void 0===Z?(0,p.Z)({},We):Z,S=e.sortBy,_=void 0===S?"":S,B=e.sortDirection,O=void 0===B?"":B,M=(0,j.useState)(1),L=(0,x.Z)(M,2),R=L[0],V=L[1],I=(0,j.useState)(100),F=(0,x.Z)(I,2),E=F[0],U=F[1],G=Math.ceil(i.length/E),z=[],X=1;X<=G;X++)z.push(X);var Q=function(e){V(Number(e.target.id))},Y=z.map((function(e){return(0,_e.jsx)("li",{id:e,onClick:Q,className:"paging-item ".concat(R===e?"active":null),children:e},e)})),J=R*E,K=J-E,W=i.slice(K,J),q=function(e){return D&&D[e]?"tableHeader":"tableHeader hidden"},re=function(e){return D&&D[e]?"":"hidden"};return(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)("div",{className:"item-to-show",children:[(0,_e.jsx)("span",{children:"Nodes per page:"}),(0,_e.jsx)(m.Z,{defaultValue:E,showSearch:!1,onChange:function(e){U(e)},style:{width:80,borderRadius:10},dropdownMatchSelectWidth:!1,options:[{value:"10",label:"10"},{value:"25",label:"25"},{value:"50",label:"50"},{value:"100",label:"100"}]})]}),(0,_e.jsxs)("div",{className:"data-table-wrapper",children:[(0,_e.jsx)("div",{style:{width:"100%"},children:(0,_e.jsxs)("table",{style:{borderWidth:1.1,borderColor:"rgba(0,0,0,1)",width:"100%"},children:[(0,_e.jsx)("thead",{children:(0,_e.jsxs)("tr",{style:{borderStyle:"solid",borderWidth:1.1,borderColor:"rgba(0,0,0,1)",color:"black",textAlign:"center",marginRight:10},children:[(0,_e.jsx)("th",{style:{backgroundColor:"rgba(24, 34, 51, 0.4)"}}),(0,_e.jsx)("th",{className:q("nodes"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("node_address"),textAlign:"center"}),onClick:function(){return n("node_address")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Validator Nodes"}),(0,_e.jsx)(Ee,{column:"node_address",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("age"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("age"),textAlign:"center"}),onClick:function(){return n("age")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Age"}),(0,_e.jsx)(Ee,{column:"age",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("action"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("action"),textAlign:"center"}),onClick:function(){return n("action")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Action"}),(0,_e.jsx)(Ee,{column:"action",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("isp"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("isp"),textAlign:"center"}),onClick:function(){return n("isp")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"ISP"}),(0,_e.jsx)(Ee,{column:"isp",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("location"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("location"),textAlign:"center"}),onClick:function(){return n("location")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Location"}),(0,_e.jsx)(Ee,{column:"location",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("bond"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("bond"),textAlign:"center"}),onClick:function(){return n("bond")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Bond"}),(0,_e.jsx)(Ee,{column:"bond",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("providers"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("bond_providers"),textAlign:"center"}),onClick:function(){return n("bond_providers")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Providers"}),(0,_e.jsx)(Ee,{column:"bond_providers",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("rewards"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("current_award"),textAlign:"center"}),onClick:function(){return n("current_award")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Rewards"}),(0,_e.jsx)(Ee,{column:"current_award",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("apy"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("apy"),textAlign:"center"}),onClick:function(){return n("apy")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"APY"}),(0,_e.jsx)(Ee,{column:"apy",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("slashes"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("slash_points"),textAlign:"center"}),onClick:function(){return n("slash_points")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Slashes"}),(0,_e.jsx)(Ee,{column:"slash_points",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("score"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("score"),textAlign:"center"}),onClick:function(){return n("score")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Score"}),(0,_e.jsx)(Ee,{column:"score",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("version"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("version"),textAlign:"center"}),onClick:function(){return n("version")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:"Version"}),(0,_e.jsx)(Ee,{column:"version",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("leave"),style:(0,p.Z)((0,p.Z)({},Oe),{},{color:l("leave"),textAlign:"center"}),onClick:function(){return n("leave")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("span",{style:{marginRight:"5px"},children:Be}),(0,_e.jsx)(Ee,{column:"leave",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("rpc"),style:(0,p.Z)((0,p.Z)({},Oe),{},{textAlign:"center"}),children:"RPC"}),(0,_e.jsx)("th",{className:q("bfr"),style:(0,p.Z)((0,p.Z)({},Oe),{},{textAlign:"center"}),children:"BFR"}),c&&(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsx)("th",{className:q("BNB"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return n("BNB")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:$,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Ee,{column:"BNB",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("BTC"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return n("BTC")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:te,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Ee,{column:"BTC",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("ETH"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return n("ETH")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:ee,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Ee,{column:"ETH",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("LTC"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return n("LTC")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:ie,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Ee,{column:"LTC",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("BCH"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return n("BCH")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:ne,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Ee,{column:"BCH",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("DOGE"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return n("DOGE")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:se,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Ee,{column:"DOGE",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("GAIA"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return n("GAIA")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:ae,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Ee,{column:"GAIA",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("AVAX"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return n("AVAX")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:le,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Ee,{column:"AVAX",sortBy:_,sortDirection:O})]})}),(0,_e.jsx)("th",{className:q("BSC"),style:(0,p.Z)((0,p.Z)((0,p.Z)({},Oe),Re),{},{textAlign:"center"}),onClick:function(){return n("BSC")},children:(0,_e.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,_e.jsx)("img",{alt:"#",src:oe,style:{width:25,height:25,display:"block",marginRight:"5px"}}),(0,_e.jsx)(Ee,{column:"BSC",sortBy:_,sortDirection:O})]})})]})]})}),(0,_e.jsxs)("tbody",{children:[W.map((function(e,i){var n,l,m,x,j,Z,D;return(0,_e.jsxs)("tr",{style:(0,p.Z)({},Le),children:[(0,_e.jsx)("td",{style:{backgroundColor:"rgba(24, 34, 51, 0.4)",minWidth:35,width:50,paddingLeft:3,textAlign:"center"},children:i+1}),(0,_e.jsxs)("td",{className:re("nodes"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center",minWidth:250,maxWidth:300}),children:[(0,_e.jsx)(w.Z,{content:e.node_address,title:"Thornode Address",trigger:"hover",children:(0,_e.jsx)("span",{style:{cursor:"pointer"},className:"nodeaddress",onClick:function(){return Ve("Node address copied to clipboard:",e.node_address)},children:"...".concat(e.node_address.substring(e.node_address.length-4))})}),(0,_e.jsx)(w.Z,{content:(null===y||void 0===y||null===(n=y.datasets)||void 0===n?void 0:n.length)>0?(0,_e.jsx)(A.Z,{data:y,options:C},JSON.stringify(y)):(0,_e.jsx)("div",{children:"No data available"}),title:"Performance Over Time for ".concat(e.node_address.slice(-4)),trigger:"click",overlayClassName:"my-custom-popover",onVisibleChange:function(e){return t(e)},children:(0,_e.jsx)("span",{className:"icon-wrapper",children:(0,_e.jsx)(k.Z,{style:{stroke:"currentColor"},onClick:function(){return b(e.node_address)}})})}),(0,_e.jsx)(Ue,{address:e.node_address,ip_address:e.ip_address,addToFav:d,whichHeart:h})]}),(0,_e.jsx)("td",{className:re("age"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:e.age.toFixed(2)}),(0,_e.jsx)("td",{className:re("action"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center",fontSize:12}),children:e.action}),(0,_e.jsx)("td",{className:re("isp"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:(0,_e.jsx)(w.Z,{content:e.isp,title:"Provider",trigger:"hover",children:(0,_e.jsx)("span",{style:{cursor:"pointer"},children:(0,_e.jsx)(Xe,{isp:e.isp})})})}),(0,_e.jsx)("td",{style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center",fontSize:12}),children:e.location}),(0,_e.jsx)("td",{className:re("bond"),style:{tdStyle:Me,textAlign:"center"},onClick:function(){return s(e.node_address)},children:(0,_e.jsx)(w.Z,{content:null!==u&&void 0!==u&&null!==(l=u.datasets)&&void 0!==l&&null!==(m=l[0])&&void 0!==m&&m.data&&u.datasets[0].data.length>0?(0,_e.jsx)(N.Z,{data:u,options:v},JSON.stringify(u)):(0,_e.jsx)("div",{children:"No data available"}),title:"Bond Value Over Time for ".concat(e.node_address.slice(-4)),trigger:"click",overlayClassName:"my-custom-popover",onVisibleChange:function(e){return t(e)},children:(0,_e.jsxs)("span",{style:{display:"inline-flex",color:"#1890ff",cursor:"pointer"},children:[(0,_e.jsx)(P.Z,{style:{marginRight:4}}),"\u16b1",parseInt((e.bond/1e8).toFixed()).toLocaleString()]})})}),(0,_e.jsx)("td",{className:re("providers"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:(0,_e.jsx)(w.Z,{content:(0,_e.jsx)(Ye,{data:e.bond_providers.providers}),title:"Bond Providers",trigger:"hover",children:(0,_e.jsx)("span",{style:{cursor:"pointer"},children:e.bond_providers.providers.length})})}),(0,_e.jsx)("td",{className:re("rewards"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),onClick:function(){return a(e.node_address)},children:(0,_e.jsx)(w.Z,{content:null!==u&&void 0!==u&&null!==(x=u.datasets)&&void 0!==x&&null!==(j=x[0])&&void 0!==j&&j.data&&u.datasets[0].data.length>0?(0,_e.jsx)(N.Z,{data:u,options:g},JSON.stringify(u)):(0,_e.jsx)("div",{children:"No data available"}),title:"Rewards Over Time for ".concat(e.node_address.slice(-4)),trigger:"click",overlayClassName:"my-custom-popover",onVisibleChange:function(e){return t(e)},children:(0,_e.jsxs)("span",{style:{display:"inline-flex",color:"#1890ff",cursor:"pointer"},children:[(0,_e.jsx)(P.Z,{style:{marginRight:4}}),"\u16b1",parseInt((e.current_award/1e8).toFixed()).toLocaleString()]})})}),(0,_e.jsx)("td",{className:re("apy"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:e.apy}),(0,_e.jsx)("td",{className:re("slashes"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),onClick:function(){return r(e.node_address)},children:(0,_e.jsx)(w.Z,{content:null!==u&&void 0!==u&&null!==(Z=u.datasets)&&void 0!==Z&&null!==(D=Z[0])&&void 0!==D&&D.data&&u.datasets[0].data.length>0?(0,_e.jsx)(N.Z,{data:u,options:f},JSON.stringify(u)):(0,_e.jsx)("div",{children:"No data available"}),title:"Slashes Over Time for ".concat(e.node_address.slice(-4)),trigger:"click",overlayClassName:"my-custom-popover",onVisibleChange:function(e){return t(e)},children:(0,_e.jsxs)("span",{style:{display:"inline-flex",color:"#1890ff",cursor:"pointer"},children:[(0,_e.jsx)(P.Z,{style:{marginRight:4}}),parseInt(e.slash_points).toLocaleString()]})})}),(0,_e.jsx)("td",{className:re("score"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:e.score}),(0,_e.jsx)("td",{className:re("version"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:e.version}),(0,_e.jsx)("td",{style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:1===e.forced_to_leave||1===e.requested_to_leave?"yes":"-"}),(0,_e.jsx)("td",{className:re("rpc"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:(0,_e.jsx)("a",{style:{color:"rgba(0,0,0,0.85)"},href:"http://".concat(e.ip_address,":27147/health?"),target:"_blank",rel:"noopener noreferrer",children:"null"!==e.rpc?"*":"Bad"})}),(0,_e.jsx)("td",{className:re("bfr"),style:(0,p.Z)((0,p.Z)({},Me),{},{textAlign:"center"}),children:(0,_e.jsx)("a",{style:{color:"rgba(0,0,0,0.85)"},href:"http://".concat(e.ip_address,":6040/p2pid"),target:"_blank",rel:"noopener noreferrer",children:"null"!==e.bifrost?"*":"Bad"})}),c&&(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsx)(Qe,{chain:"BNB",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"BTC",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"ETH",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"LTC",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"BCH",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"DOGE",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"GAIA",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"AVAX",obchains:e.obchains,maxChainHeights:o}),(0,_e.jsx)(Qe,{chain:"BSC",obchains:e.obchains,maxChainHeights:o})]})]},i)})),(0,_e.jsx)("tr",{children:(0,_e.jsx)("td",{})})]})]})}),(0,_e.jsx)("div",{className:"paging-wrapper",children:(0,_e.jsxs)("ul",{className:"page-numbers",children:[(0,_e.jsx)("li",{onClick:function(){V((function(e){return 1===e?e:e-1}))},className:"nav-button nav-button--prev ".concat(1===R?"disabled":null),children:(0,_e.jsx)(H.Z,{})}),Y,(0,_e.jsx)("li",{onClick:function(){V((function(e){return e===G?e:e+1}))},className:"nav-button nav-button--next ".concat(R===G?"disabled":null),children:(0,_e.jsx)(T.Z,{})})]})})]})]})},Ke=null,We={nodes:!0,age:!0,action:!0,isp:!0,bond:!0,providers:!0,location:!0,leave:!0,rewards:!0,apy:!0,slashes:!0,score:!0,version:!0,rpc:!0,bfr:!0,BTC:!0,BNB:!0,ETH:!0,LTC:!0,BCH:!0,DOGE:!0,GAIA:!0,AVAX:!0,BSC:!0},qe=function(e,t,i){(0,u.Z)(m,e);var n=(0,v.Z)(m);function m(e){var t,i,s,a,r;return(0,c.Z)(this,m),(r=n.call(this,e)).handlePopoverVisibility=function(e){r.setState({isPopoverOpen:e})},r.handleNodePosition=function(e){return(t=t||(0,f.Z)((0,g.Z)().mark((function e(t){var i,n,s,a,l,c,d,h;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.setState({isPopoverOpen:!0}),i="https://api.liquify.com/thor/api/grabPosition=".concat(t),e.prev=2,e.next=5,fetch(i);case 5:return n=e.sent,e.next=8,n.json();case 8:(s=e.sent)&&0!==Object.keys(s).length?(a=Object.entries(s).map((function(e){var t=(0,x.Z)(e,2),i=t[0],n=t[1];return{x:Number(i),y:Number(n.max)}})),l=Object.entries(s).map((function(e){var t=(0,x.Z)(e,2),i=t[0],n=t[1];return{x:Number(i),y:Number(n.position)}})),c=[].concat((0,o.Z)(a),(0,o.Z)(l)).map((function(e){return e.x})),d=Math.min.apply(Math,(0,o.Z)(c)),h=Math.max.apply(Math,(0,o.Z)(c)),r.setState({maxData:a,positionData:l,minX:d,maxX:h})):r.setState({chartData:null}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),console.error("Error fetching data from ".concat(i,":"),e.t0);case 15:case"end":return e.stop()}}),e,null,[[2,12]])})))).apply(this,arguments)},r.handleClickSlashes=function(e){return(i=i||(0,f.Z)((0,g.Z)().mark((function e(t){var i,n,s,a;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.setState({isPopoverOpen:!0}),i="https://api.liquify.com/thor/api/grabSlashes=".concat(t),e.prev=2,e.next=5,fetch(i);case 5:return n=e.sent,e.next=8,n.json();case 8:(s=e.sent)&&0!==Object.keys(s).length?(a=Object.entries(s).map((function(e){var t=(0,x.Z)(e,2),i=t[0],n=t[1];return{x:Number(i),y:Number(n)}})),r.setState({chartData:a})):r.setState({chartData:null}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),console.error("Error fetching data from ".concat(i,":"),e.t0);case 15:case"end":return e.stop()}}),e,null,[[2,12]])})))).apply(this,arguments)},r.handleMaxEffectiveStake=(0,f.Z)((0,g.Z)().mark((function e(){var t,i,n,s;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.setState({isPopoverOpen:!0}),t="https://api.liquify.com/thor/api/maxEffectiveStake",e.prev=2,e.next=5,fetch(t);case 5:return i=e.sent,e.next=8,i.json();case 8:(n=e.sent)&&0!==Object.keys(n).length?(s=Object.entries(n).map((function(e){var t=(0,x.Z)(e,2),i=t[0],n=t[1];return{x:Number(i),y:Math.round(Number(n)/1e8)}})),r.setState({chartData:s})):r.setState({chartData:null}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),console.error("Error fetching data from ".concat(t,":"),e.t0);case 15:case"end":return e.stop()}}),e,null,[[2,12]])}))),r.handleClickTotalBond=(0,f.Z)((0,g.Z)().mark((function e(){var t,i,n,s;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.setState({isPopoverOpen:!0}),t="https://api.liquify.com/thor/api/totalBond",e.prev=2,e.next=5,fetch(t);case 5:return i=e.sent,e.next=8,i.json();case 8:(n=e.sent)&&0!==Object.keys(n).length?(s=Object.entries(n).map((function(e){var t=(0,x.Z)(e,2),i=t[0],n=t[1];return{x:Number(i),y:Math.round(Number(n)/1e8)}})),r.setState({chartData:s})):r.setState({chartData:null}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),console.error("Error fetching data from ".concat(t,":"),e.t0);case 15:case"end":return e.stop()}}),e,null,[[2,12]])}))),r.handleClickRewards=function(e){return(s=s||(0,f.Z)((0,g.Z)().mark((function e(t){var i,n,s,a;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.setState({isPopoverOpen:!0}),i="https://api.liquify.com/thor/api/grabRewards=".concat(t),e.prev=2,e.next=5,fetch(i);case 5:return n=e.sent,e.next=8,n.json();case 8:(s=e.sent)&&0!==Object.keys(s).length?(a=Object.entries(s).map((function(e){var t=(0,x.Z)(e,2),i=t[0],n=t[1];return{x:Number(i),y:Math.round(Number(n)/1e8)}})),r.setState({chartData:a})):r.setState({chartData:null}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),console.error("Error fetching data from ".concat(i,":"),e.t0);case 15:case"end":return e.stop()}}),e,null,[[2,12]])})))).apply(this,arguments)},r.handleClickBond=function(e){return(a=a||(0,f.Z)((0,g.Z)().mark((function e(t){var i,n,s,a;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r.setState({isPopoverOpen:!0}),i="https://api.liquify.com/thor/api/grabBond=".concat(t),e.prev=2,e.next=5,fetch(i);case 5:return n=e.sent,e.next=8,n.json();case 8:(s=e.sent)&&0!==Object.keys(s).length?(a=Object.entries(s).map((function(e){var t=(0,x.Z)(e,2),i=t[0],n=t[1];return{x:Number(i),y:Math.round(Number(n)/1e8)}})),r.setState({chartData:a})):r.setState({chartData:null}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),console.error("Error fetching data from ".concat(i,":"),e.t0);case 15:case"end":return e.stop()}}),e,null,[[2,12]])})))).apply(this,arguments)},r.state={isPopoverOpen:!1,chartData:[],data:[],globalData:[],sortBy:"bond",sortDirection:"desc",activeNodes:[],standByNodes:[],whitelistedNodes:[],animateBlockCount:!1,myFavNodes:[],searchTerm:"",visibleColumns:We,nodesFilter:{},loading:!0,sortByChain:null,minX:null,maxX:null},r.clickSortHeader=r.clickSortHeader.bind((0,h.Z)(r)),r.handleClickRewards=r.handleClickRewards.bind((0,h.Z)(r)),r.handleClickSlashes=r.handleClickSlashes.bind((0,h.Z)(r)),r.handleClickBond=r.handleClickBond.bind((0,h.Z)(r)),r.handleClickTotalBond=r.handleClickTotalBond.bind((0,h.Z)(r)),r.handleNodePosition=r.handleNodePosition.bind((0,h.Z)(r)),r}return(0,d.Z)(m,[{key:"componentWillMount",value:function(){return(t=t||(0,f.Z)((0,g.Z)().mark((function e(){var t,i;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=(0,D.ej)("myFavNodes"),i=t.length>0?JSON.parse(t):[],this.setState({myFavNodes:i}),this.refreshData();case 4:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}},{key:"refreshData",value:function(){return(i=i||(0,f.Z)((0,g.Z)().mark((function e(){var t,i=this;return(0,g.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.state.isPopoverOpen){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,(0,D.Yu)();case 4:t=e.sent,this.state.loading&&this.setState({loading:!1}),this.setState({data:t.data,globalData:t.globalData,maxChainHeights:t.maxChainHeights,animateBlockCount:!1},(function(){return i.setData()}));case 8:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}},{key:"componentDidMount",value:function(){var e=this;Ke=setInterval((function(){e.setState({animateBlockCount:!1},(function(){return e.refreshData()}))}),6e3)}},{key:"componentWillUnmount",value:function(){clearInterval(Ke)}},{key:"addToFav",value:function(e){var t=this,i=(0,D.ej)("myFavNodes");if(0===i.length){var n=JSON.stringify([e]);(0,D.d8)("myFavNodes",n),this.setState({myFavNodes:n},(function(){return t.setData()}))}else{var s=JSON.parse(i);if(s.indexOf(e)>-1){var a=s.filter((function(t){return t!==e})),r=JSON.stringify(a);this.setState({myFavNodes:a},(function(){return t.setData()})),(0,D.d8)("myFavNodes",r)}else{s[s.length]=e;var l=JSON.stringify(s);this.setState({myFavNodes:s},(function(){return t.setData()})),(0,D.d8)("myFavNodes",l)}}}},{key:"returnSearchedData",value:function(e){var t=this;return""===this.state.searchTerm?e:e.filter((function(e){return e.node_address.includes(t.state.searchTerm)||e.bondProvidersString.includes(t.state.searchTerm)}))}},{key:"setData",value:function(){var e=this,t=JSON.parse(JSON.stringify(this.state.data)).map((function(t){return e.state.myFavNodes.includes(t.node_address)?t.fave=1:t.fave=0,t})),i=t.filter((function(e){return"Active"===e.status})),n=t.filter((function(t){return("Standby"===t.status||"Ready"===t.status)&&t.version===e.state.globalData.maxVersion})),s=[].concat((0,o.Z)(i.map((function(e){return e.node_address}))),(0,o.Z)(n.map((function(e){return e.node_address})))),a=t.filter((function(e){return!s.includes(e.node_address)}));i=this.findChurnOuts(i),n=this.findChurnIns(n),i=this.returnSearchedData(i),n=this.returnSearchedData(n),a=this.returnSearchedData(a);var r=this.sortData(i,this.state.sortBy,this.state.sortDirection,!1),l=r.filter((function(e){return 1===e.fave}));r=r.filter((function(e){return 0===e.fave})),r=[].concat((0,o.Z)(l),(0,o.Z)(r));var c=this.sortData(n,this.state.sortBy,this.state.sortDirection,!1),d=this.sortData(a,this.state.sortBy,this.state.sortDirection,!1);this.setState({activeNodes:r,standByNodes:c,whitelistedNodes:d})}},{key:"onColumnUpdate",value:function(e){this.setState({visibleColumns:e})}},{key:"onNodesFilter",value:function(e){this.setState((function(t){return{nodesFilter:(0,p.Z)((0,p.Z)({},t.nodesFilter),{},(0,l.Z)({},e,!t.nodesFilter[e]))}}))}},{key:"findChurnIns",value:function(e){if(0===e.length)return[];var t=e.filter((function(e){return e.bond>=3e13})),i=this.sortData(t,"bond","desc");i.length>0&&(i[Math.min(0,i.length-1)].action="Churn In",i[Math.min(1,i.length-1)].action="Churn In",i[Math.min(2,i.length-1)].action="Churn In",i[Math.min(3,i.length-1)].action="Churn In",i[Math.min(4,i.length-1)].action="Churn In");var n=e.filter((function(e){return e.bond<3e13}));return[].concat((0,o.Z)(i),(0,o.Z)(n))}},{key:"findChurnOuts",value:function(e){if(0===e.length)return[];var t=this.sortData(e,"age","desc");return t[0].action="Oldest",(t=this.sortData(e,"bond","asc"))[0].action="Smallest Bond",t=this.sortData(e,"score","asc",!0),this.calcBadValidatorRedline(e),t}},{key:"calcBadValidatorRedline",value:function(e){var t=e.filter((function(e){return e.slash_points>100})),i=t.reduce((function(e,t){return e+parseFloat(t.score)}),0)/(t.length+1)/this.state.globalData.BadValidatorRedline;e.map((function(e){return e.score1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,s=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a=null===i?this.state.sortBy:i,r=[];if(this.state.sortChain){var l=a;r=(0,o.Z)(e).sort((function(e,i){var n=e.obchains[l]-t.state.maxChainHeights[l],s=i.obchains[l]-t.state.maxChainHeights[l];return n===s?e.node_address.localeCompare(i.node_address):n-s}))}else if(["node","isp","location","version","action","node_address"].includes(a))r=e.sort((function(e,t){return e[a].localeCompare(t[a])}));else if("bond_providers"===a)r=e.sort((function(e,t){return e[a].providers.length-t[a].providers.length}));else if(!0===s){var c=e.filter((function(e){return parseFloat(e.age)>3})),d=e.filter((function(e){return parseFloat(e.age)<=3})),h=c.sort((function(e,t){return t[a]-e[a]}));h[h.length-1].action="Worst Performing",r=[].concat((0,o.Z)(h),(0,o.Z)(d))}else r=e.sort((function(e,t){return e[a]===t[a]?e.node_address.localeCompare(t.node_address):e[a]>t[a]?1:-1}));return"desc"===(null===n?this.state.sortDirection:n)&&r.reverse(),r}},{key:"clickSortHeader",value:function(e){var t=this,i=["BNB","BTC","ETH","LTC","BCH","DOGE","GAIA","AVAX","BSC"].includes(e),n=this.state.sortBy!==e?"desc":"desc"===this.state.sortDirection?"asc":"desc";this.setState({sortBy:e,sortDirection:n,sortChain:i},(function(){return t.setData()})),window.setTimeout((function(){}),200)}},{key:"sortColour",value:function(e){return"#ffffff"}},{key:"whichHeart",value:function(e){return this.state.myFavNodes.includes(e)?L:M}},{key:"searchBar",value:function(){var e=this;return(0,_e.jsx)("div",{className:"search-input",children:(0,_e.jsx)(r.Z,{style:{width:500,height:46,borderRadius:6,background:"#fff"},onChange:function(t){return e.setState({searchTerm:t.target.value.trim().toLowerCase()},(function(){return e.setData()}))},prefix:(0,_e.jsx)(O.Z,{})})})}},{key:"render",value:function(){var e=this,t=this.state,i=t.loading,n=(t.data,t.nodesFilter),r=t.visibleColumns,l=t.activeNodes,c=t.standByNodes,d=t.whitelistedNodes,h=!n.active&&!n.standby&&!n.orthers,u=b()(n)||h||n.active,v=b()(n)||h||n.standby,m=b()(n)||h||n.orthers,x=this.state.chartData?{datasets:[{label:"Value",data:this.state.chartData,fill:!1,backgroundColor:"rgb(28, 57, 182)",borderColor:"rgba(28, 57, 187, 0.2)",tension:0}]}:{},p=this.state.maxData&&this.state.positionData?{datasets:[{label:"Max",data:this.state.maxData,backgroundColor:"blue",pointRadius:5},{label:"Position",data:this.state.positionData,backgroundColor:"orange",pointRadius:5}]}:{},g=this.state.chartData?{scales:{xAxes:[{type:"linear",position:"bottom",scaleLabel:{display:!0,labelString:"Block Height"},ticks:{autoSkip:!0,maxTicksLimit:10,min:Math.min.apply(Math,(0,o.Z)(this.state.chartData.map((function(e){return e.x})))),max:Math.max.apply(Math,(0,o.Z)(this.state.chartData.map((function(e){return e.x})))),stepSize:2e4,callback:function(e){return e}}}],yAxes:[{scaleLabel:{display:!0,labelString:"Max Effective Stake (\u16b1)"}}]}}:{},f=this.state.chartData?{scales:{xAxes:[{type:"linear",position:"bottom",scaleLabel:{display:!0,labelString:"Block Height"},ticks:{autoSkip:!0,maxTicksLimit:10,min:Math.min.apply(Math,(0,o.Z)(this.state.chartData.map((function(e){return e.x})))),max:Math.max.apply(Math,(0,o.Z)(this.state.chartData.map((function(e){return e.x})))),stepSize:2e4,callback:function(e){return e}}}],yAxes:[{scaleLabel:{display:!0,labelString:"Total Bond Amount (\u16b1)"}}]}}:{},j=this.state.chartData?{scales:{xAxes:[{type:"linear",position:"bottom",scaleLabel:{display:!0,labelString:"Block Height"},ticks:{autoSkip:!0,maxTicksLimit:10,min:this.state.minX,max:this.state.maxX,stepSize:2e4,callback:function(e){return e}}}],yAxes:[{scaleLabel:{display:!0,labelString:"Position"},ticks:{min:0,max:100}}]}}:{},y=this.state.chartData?{scales:{xAxes:[{type:"linear",position:"bottom",scaleLabel:{display:!0,labelString:"Block Height"},ticks:{callback:function(e,t,i){return e}}}],yAxes:[{scaleLabel:{display:!0,labelString:"Slashes Value"}}]}}:{},k=this.state.chartData?{scales:{xAxes:[{type:"linear",position:"bottom",scaleLabel:{display:!0,labelString:"Block Height"},ticks:{callback:function(e,t,i){return e}}}],yAxes:[{scaleLabel:{display:!0,labelString:"Reward Amount (\u16b1)"}}]}}:{},N=this.state.chartData?{scales:{xAxes:[{type:"linear",position:"bottom",scaleLabel:{display:!0,labelString:"Block Height"},ticks:{autoSkip:!0,maxTicksLimit:10,min:Math.min.apply(Math,(0,o.Z)(this.state.chartData.map((function(e){return e.x})))),stepSize:2e4,callback:function(e,t,i){return e}}}],yAxes:[{scaleLabel:{display:!0,labelString:"Bond Amount (\u16b1)"}}]}}:{};return(0,_e.jsxs)(C.Z,{children:[(0,_e.jsxs)(Pe,{style:{color:"white",fontSize:25,fontWeight:700,minWidth:1580,height:110,display:"flex",alignItems:"center"},children:[(0,_e.jsxs)("div",{className:"header-left",children:[(0,_e.jsx)("img",{alt:"#",src:re.Z,style:{width:55,height:55,margin:"auto 22px auto 0"}}),(0,_e.jsx)("span",{children:"Thornode Monitor"})]}),(0,_e.jsxs)("div",{className:"header-right",children:[(0,_e.jsx)("div",{className:"active-node ".concat(n.active?"active-node--active":null),onClick:function(){return e.onNodesFilter("active")},children:(0,_e.jsx)(w.Z,{content:"Active nodes",title:"Filter by",trigger:"hover",children:(0,_e.jsx)("img",{src:we.Z})})}),(0,_e.jsx)("div",{className:"active-node ".concat(n.standby?"active-node--active":null),onClick:function(){return e.onNodesFilter("standby")},children:(0,_e.jsx)(w.Z,{content:"Standby nodes",title:"Filter by",trigger:"hover",children:(0,_e.jsx)("img",{src:Ze.Z})})}),(0,_e.jsx)("div",{className:"active-node ".concat(n.orthers?"active-node--active":null),onClick:function(){return e.onNodesFilter("orthers")},children:(0,_e.jsx)(w.Z,{content:"Orther nodes",title:"Filter by",trigger:"hover",children:(0,_e.jsx)("img",{src:Ae.Z})})})]})]}),(0,_e.jsxs)(Te,{style:{padding:40,backgroundColor:"white"},children:[i&&(0,_e.jsx)("div",{className:"loading",children:(0,_e.jsx)("img",{src:ye,className:"loading_icon"})}),!i&&(0,_e.jsxs)("div",{className:"layout-content-wrapper",children:[(0,_e.jsx)(a.Z,{separator:">",children:(0,_e.jsx)(a.Z.Item,{children:"Dashboard"})}),(0,_e.jsx)("div",{className:"overview-list-wrapper",children:(0,_e.jsxs)("div",{className:"overview-list",children:[(0,_e.jsx)(Ge,{state:this.state,globalData:this.state.globalData,animateBlockCount:this.state.animateBlockCount,handleClickTotalBond:this.handleClickTotalBond,chartDataConfig:x,totalBondOptions:f,maxStakeOptions:g,handlePopoverVisibility:this.handlePopoverVisibility,handleMaxEffectiveStake:this.handleMaxEffectiveStake}),(0,_e.jsx)(ze,{globalData:this.state.globalData})]})}),u&&(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)("div",{className:"cta-wrapper",children:[(0,_e.jsx)("div",{className:"cta-link",children:(0,_e.jsx)(_.rU,{to:B.Q.ACTIVE_DASHBOARD,children:(0,_e.jsx)(s.Z,{type:"primary",className:"uppercase",children:"Active nodes"})})}),this.searchBar(),(0,_e.jsx)(Se.Z,{initialConfig:r,onConfigUpdate:this.onColumnUpdate.bind(this)})]}),l.length>0&&(0,_e.jsx)(Je,{visibleColumns:r,whichHeart:this.whichHeart.bind(this),addToFav:this.addToFav.bind(this),nodeData:l,clickSortHeader:this.clickSortHeader.bind(this),handleClickBond:this.handleClickBond,handleClickRewards:this.handleClickRewards,handleClickSlashes:this.handleClickSlashes,sortColour:this.sortColour.bind(this),maxChainHeights:this.state.maxChainHeights,chains:!0,sortBy:this.state.sortBy,sortDirection:this.state.sortDirection,chartDataConfig:x,bondOptions:N,rewardsOptions:k,slashesOptions:y,handlePopoverVisibility:this.handlePopoverVisibility,handleNodePosition:this.handleNodePosition,maxPositionChartDataConfig:p,maxPositionOptions:j}),0===l.length&&(0,_e.jsx)("div",{className:"no-data",children:(0,_e.jsx)("div",{className:"no-data__content",children:"No Active Data Available!"})}),(0,_e.jsx)("br",{})]}),v&&(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)("div",{className:"cta-wrapper",children:[(0,_e.jsx)("div",{className:"cta-link",children:(0,_e.jsx)(_.rU,{to:B.Q.STANDBY_DASHBOARD,children:(0,_e.jsx)(s.Z,{type:"primary",className:"uppercase",children:"Standby nodes"})})}),!u&&(0,_e.jsxs)(_e.Fragment,{children:[this.searchBar(),(0,_e.jsx)(Se.Z,{initialConfig:r,onConfigUpdate:this.onColumnUpdate.bind(this)})]})]}),c.length>0&&(0,_e.jsx)(Je,{visibleColumns:r,whichHeart:this.whichHeart.bind(this),addToFav:this.addToFav.bind(this),nodeData:c,clickSortHeader:this.clickSortHeader.bind(this),handleClickBond:this.handleClickBond,handleClickRewards:this.handleClickRewards,handleClickSlashes:this.handleClickSlashes,sortColour:this.sortColour.bind(this),maxChainHeights:this.state.maxChainHeights,chains:!1,sortBy:this.state.sortBy,sortDirection:this.state.sortDirection,chartDataConfig:x,bondOptions:N,rewardsOptions:k,slashesOptions:y,handlePopoverVisibility:this.handlePopoverVisibility,handleNodePosition:this.handleNodePosition,maxPositionChartDataConfig:p,maxPositionOptions:j}),0===c.length&&(0,_e.jsx)("div",{className:"no-data",children:(0,_e.jsx)("div",{className:"no-data__content",children:"No Standby Data Available!"})}),(0,_e.jsx)("br",{})]}),m&&(0,_e.jsxs)(_e.Fragment,{children:[(0,_e.jsxs)("div",{className:"cta-wrapper",children:[(0,_e.jsx)("div",{className:"cta-link",children:(0,_e.jsx)(_.rU,{to:B.Q.OTHER_DASHBOARD,children:(0,_e.jsx)(s.Z,{type:"primary",className:"uppercase",children:"Other nodes"})})}),!u&&!v&&(0,_e.jsxs)(_e.Fragment,{children:[this.searchBar(),(0,_e.jsx)(Se.Z,{initialConfig:r,onConfigUpdate:this.onColumnUpdate.bind(this)})]})]}),d.length>0&&(0,_e.jsx)(Je,{visibleColumns:r,whichHeart:this.whichHeart.bind(this),addToFav:this.addToFav.bind(this),nodeData:d,clickSortHeader:this.clickSortHeader.bind(this),handleClickBond:this.handleClickBond,handleClickRewards:this.handleClickRewards,handleClickSlashes:this.handleClickSlashes,sortColour:this.sortColour.bind(this),maxChainHeights:this.state.maxChainHeights,chains:!1,sortBy:this.state.sortBy,sortDirection:this.state.sortDirection,chartDataConfig:x,bondOptions:N,rewardsOptions:k,slashesOptions:y,handlePopoverVisibility:this.handlePopoverVisibility,handleNodePosition:this.handleNodePosition,maxPositionChartDataConfig:p,maxPositionOptions:j}),0===d.length&&(0,_e.jsx)("div",{className:"no-data",children:(0,_e.jsx)("div",{className:"no-data__content",children:"No Other Data Available!"})})]})]})]}),(0,_e.jsxs)(He,{children:[(0,_e.jsx)("a",{href:"https://github.com/liquify-validation",target:"_blank",className:"link",children:(0,_e.jsx)("img",{alt:"#",src:be.Z,className:"overview-item__icon"})}),(0,_e.jsx)("a",{href:"https://twitter.com/Liquify_ltd",target:"_blank",className:"link",children:(0,_e.jsx)("img",{alt:"#",src:ke.Z,className:"overview-item__icon"})}),(0,_e.jsxs)("div",{className:"logo-wrapper",children:[(0,_e.jsx)("span",{children:"BuiltD by:"}),(0,_e.jsx)("img",{alt:"#",src:Ne.Z,className:"overview-item__icon"})]})]})]})}}]),m}(j.Component)},66364:function(e,t,i){var n=i(43654),s=i(88383),a=i(34963),r=i(93629),l=i(21473),o=i(5174),c=i(62936),d=i(19102),h=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(l(e)&&(r(e)||"string"==typeof e||"function"==typeof e.splice||o(e)||d(e)||a(e)))return!e.length;var t=s(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(c(e))return!n(e).length;for(var i in e)if(h.call(e,i))return!1;return!0}},97144:function(e){"use strict";e.exports="data:image/png;base64,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"}}]); +//# sourceMappingURL=164.80a7ea90.chunk.js.map \ No newline at end of file diff --git a/build/static/js/164.80a7ea90.chunk.js.map b/build/static/js/164.80a7ea90.chunk.js.map new file mode 100644 index 0000000..b670f5b --- /dev/null +++ b/build/static/js/164.80a7ea90.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/164.80a7ea90.chunk.js","mappings":"yoCAmFMA,IACJC,EAAAA,GAAAA,MAAA,OACEC,MAAO,CAAEC,UAAW,GACpBC,UAAU,QACVC,oBAAoB,gBACpBC,MAAM,6BACNC,KAAK,eACLC,MAAM,KACNC,OAAO,KACPC,QAAQ,YACR,cAAY,OACZC,UAAU,MAAKC,SAAA,EAEfC,EAAAA,GAAAA,KAAA,QAAMC,EAAE,0IACRD,EAAAA,GAAAA,KAAA,QAAMC,EAAE,qGAIJC,GAAMC,EAAAA,EAAND,OAAQE,GAAMD,EAAAA,EAANC,OAAQC,GAAOF,EAAAA,EAAPE,QAElBC,GAAc,CAClBC,OAAQ,UACRC,QAAS,YACTC,SAAU,GACVC,MAAO,UACPC,gBAAiB,wBACjBf,OAAQ,GACRgB,WAAY,KAERC,GAAU,CACdC,SAAU,GACVC,UAAW,QACXN,SAAU,GACVD,QAAS,aAELQ,GAAU,CAAEpB,OAAQ,IACpBqB,GAAY,CAChBH,SAAU,GACVN,QAAS,EACTU,YAAa,GACbC,aAAc,IACd,SAEaC,GAAmBC,EAAAC,GAAA,OAAAC,EAAAA,IAAAC,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAlC,SAAAC,EAAmCC,EAAKC,GAAE,OAAAJ,EAAAA,EAAAA,KAAAK,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACxCC,GAAgBL,GAChBM,GAAWP,EAAKC,GAAI,wBAAAE,EAAAK,OAAA,GAAAT,EAAA,MACrBU,MAAA,KAAAC,UAAA,CAED,IAAMJ,GAAkB,SAACK,GACvB,OAAIC,WAAaA,UAAUC,WAAaD,UAAUC,UAAUC,UACnDF,UAAUC,UAAUC,UAAUH,GAChCI,QAAQC,OAAO,sCACxB,EAEA,SAAST,GAAWP,EAAKC,GACvBgB,EAAAA,EAAOC,KAAK,CACVC,OAAO/C,EAAAA,GAAAA,KAAA,MAAAD,SAAI,YACXiD,SACEhD,EAAAA,GAAAA,KAACiD,EAAAA,EAAY,CAAAlD,UACXX,EAAAA,GAAAA,MAAA,KAAAW,SAAA,EACEC,EAAAA,GAAAA,KAAA,UAAAD,SAAA,GAAAmD,OAAYtB,EAAG,OAAa,IAAC,GAAAsB,OAAIrB,QAIvCsB,KAAI,WAAI,EACRC,OAAQ,KACRC,WAAY,SACZvD,UAAW,kBAEf,CAEA,IAAMwD,GAAW,SAAHC,GAA2C,IAArCC,EAAMD,EAANC,OAAQC,EAAMF,EAANE,OAAQC,EAAaH,EAAbG,cAClC,OAAID,IAAWD,GAEXxD,EAAAA,GAAAA,KAAA,OACEF,UAAS,aAAAoD,OAAiC,SAAlBQ,EAA2B,OAAS,MAC5DC,IAAKC,GAAAA,EACLjE,MAAO,KAIN,IACT,EAEMkE,GAAQ,SAAHC,GAAuD,IAAjDC,EAAOD,EAAPC,QAASC,EAAUF,EAAVE,WAAYC,EAAQH,EAARG,SAAUC,EAAUJ,EAAVI,WACxCC,EAAQ,kDAAAjB,OAAqDa,GAC7DK,EAAS,0CAAAlB,OAA6Ca,GAC5D,OACE3E,EAAAA,GAAAA,MAAA,QAAMC,MAAO,CAAEO,OAAQ,GAAIyE,WAAY,GAAKvE,UAAU,gBAAeC,SAAA,EACnEC,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CAACtB,QAAS,eAAgBuB,QAAQ,QAAOxE,UAC/CC,EAAAA,GAAAA,KAAA,KACEwE,KAAMJ,EACNK,OAAO,SACPC,IAAI,sBACJrF,MAAO,CAAEgF,WAAY,GAAItE,UAGzBX,EAAAA,GAAAA,MAAA,OACEG,UAAU,QACVC,oBAAoB,gBACpBH,MAAO,CAAEsF,cAAe,UACxBhF,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRH,KAAK,OACLD,MAAM,6BAA4BM,SAAA,EAElCC,EAAAA,GAAAA,KAAA,QACEC,EAAE,+aACF2E,OAAO,eACP,eAAa,MACb,iBAAe,QACf,kBAAgB,WAElB5E,EAAAA,GAAAA,KAAA,QACEC,EAAE,8aACF2E,OAAO,eACP,eAAa,MACb,iBAAe,QACf,kBAAgB,kBAMxB5E,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CAACtB,QAAS,eAAgBuB,QAAQ,QAAOxE,UAC/CC,EAAAA,GAAAA,KAAA,KACEwE,KAAML,EACNM,OAAO,SACPC,IAAI,sBACJrF,MAAO,CAAEgF,WAAY,GAAItE,UAGzBX,EAAAA,GAAAA,MAAA,OACEG,UAAU,QACVC,oBAAoB,gBACpBH,MAAO,CAAEsF,cAAe,UACxBhF,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRH,KAAK,OACLD,MAAM,6BAA4BM,SAAA,EAElCC,EAAAA,GAAAA,KAAA,QACEC,EAAE,mKACF2E,OAAO,eACP,eAAa,MACb,iBAAe,QACf,kBAAgB,WAElB5E,EAAAA,GAAAA,KAAA,QACEC,EAAE,gCACF2E,OAAO,eACP,eAAa,MACb,iBAAe,QACf,kBAAgB,WAElB5E,EAAAA,GAAAA,KAAA,QACEC,EAAE,mKACF2E,OAAO,eACP,eAAa,MACb,iBAAe,QACf,kBAAgB,WAElB5E,EAAAA,GAAAA,KAAA,QACEC,EAAE,mCACF2E,OAAO,eACP,eAAa,MACb,iBAAe,QACf,kBAAgB,WAElB5E,EAAAA,GAAAA,KAAA,QACEC,EAAE,iCACF2E,OAAO,eACP,eAAa,MACb,iBAAe,QACf,kBAAgB,WAElB5E,EAAAA,GAAAA,KAAA,QACEC,EAAE,kCACF2E,OAAO,eACP,eAAa,MACb,iBAAe,QACf,kBAAgB,kBAMxB5E,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CAACtB,QAASgB,EAAYjB,MAAO,aAAcwB,QAAQ,QAAOxE,UAChEC,EAAAA,GAAAA,KAAA,QACEX,MAAO,CAAEkB,OAAQ,UAAW8D,WAAY,GACxCQ,QAAS,kBACPzD,GAAoB,0BAA2B4C,EAAW,EAC3DjE,UAGDX,EAAAA,GAAAA,MAAA,OACEG,UAAU,QACVC,oBAAoB,gBACpBH,MAAO,CAAEsF,cAAe,UACxBhF,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRH,KAAK,OACLD,MAAM,6BAA4BM,SAAA,EAElCC,EAAAA,GAAAA,KAAA,QACEC,EAAE,i7CACFP,KAAK,iBACJ,KACHM,EAAAA,GAAAA,KAAA,QACEC,EAAE,kPACF2E,OAAO,kBAET5E,EAAAA,GAAAA,KAAA,QACEC,EAAE,2BACF2E,OAAO,eACP,iBAAe,kBAMvB5E,EAAAA,GAAAA,KAAA,OACE8E,IAAI,IACJD,QAAS,kBAAMZ,EAASF,EAAQ,EAChCJ,IAAKO,EAAWH,GAChB1E,MAAO,CACLkB,OAAQ,UACR8D,WAAY,EACZ/E,UAAW,EACXK,MAAO,GACPC,OAAQ,QAKlB,EAEMmF,GAAa,SAAHC,GAWT,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAG0DC,EAAAC,EAAAC,EAb9DC,EAAUZ,EAAVY,WAEAC,GADiBb,EAAjBc,kBACKd,EAALa,OAEAE,GADSf,EAATgB,UACoBhB,EAApBe,sBACAE,EAAejB,EAAfiB,gBACAC,EAAgBlB,EAAhBkB,iBACAC,EAAuBnB,EAAvBmB,wBACAC,EAAuBpB,EAAvBoB,wBACAC,EAAerB,EAAfqB,gBAEIC,EAAgB,GAChBC,EAAW,GACf,GAAc,OAAVX,QAAU,IAAVA,GAAAA,EAAYY,UAAqC,WAAf,OAAVZ,QAAU,IAAVA,OAAU,EAAVA,EAAYa,UACtCF,EAAW,mBACXD,EAAa,GAAApD,OAAgB,OAAV0C,QAAU,IAAVA,GAA0B,QAAhBH,EAAVG,EAAYc,sBAAc,IAAAjB,OAAhB,EAAVA,EAA4BkB,KAAI,MAAAzD,OAAe,OAAV0C,QAAU,IAAVA,GAA0B,QAAhBF,EAAVE,EAAYc,sBAAc,IAAAhB,OAAhB,EAAVA,EAA4BkB,MAAK,MAAA1D,OAAe,OAAV0C,QAAU,IAAVA,GAA0B,QAAhBD,EAAVC,EAAYc,sBAAc,IAAAf,OAAhB,EAAVA,EAA4BkB,QAAO,UAC5H,GAA6B,UAAf,OAAVjB,QAAU,IAAVA,OAAU,EAAVA,EAAYa,UACrBF,EAAW,6BACXD,EAAgB,eACX,CAAC,IAADQ,EAAAC,EAAAC,EACLT,EAAW,qBACXD,EAAa,GAAApD,OAAgB,OAAV0C,QAAU,IAAVA,GAA0B,QAAhBkB,EAAVlB,EAAYqB,sBAAc,IAAAH,OAAhB,EAAVA,EAA4BH,KAAI,MAAAzD,OAAe,OAAV0C,QAAU,IAAVA,GAA0B,QAAhBmB,EAAVnB,EAAYqB,sBAAc,IAAAF,OAAhB,EAAVA,EAA4BH,MAAK,MAAA1D,OAAe,OAAV0C,QAAU,IAAVA,GAA0B,QAAhBoB,EAAVpB,EAAYqB,sBAAc,IAAAD,OAAhB,EAAVA,EAA4BH,QAAO,IACnI,CAEA,OACEzH,EAAAA,GAAAA,MAAA8H,GAAAA,SAAA,CAAAnH,SAAA,EACEX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,gBAAeC,SAAA,EAC5BC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKwD,GAAAA,EAAWrH,UAAU,yBACvCV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,uBAAsBC,SAAA,EACnCC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAC,mBAC5CC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SACxCqH,SAASxB,EAAWyB,WAAWC,0BAItClI,EAAAA,GAAAA,MAAA,OAAKU,UAAU,gBAAeC,SAAA,EAC5BC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAK4D,GAAAA,EAAYzH,UAAU,yBACxCV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,uBAAsBC,SAAA,EACnCX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,6BAA4BC,SAAA,CAAEwG,EAAS,QACtDvG,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAEuG,WAGjDlH,EAAAA,GAAAA,MAAA,OAAKU,UAAU,gBAAeC,SAAA,EAC5BC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAK6D,GAAAA,EAAU1H,UAAU,yBACtCV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,uBAAsBC,SAAA,EACnCC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAC,wBAC5CX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,6BAA4BC,SAAA,CAAC,SAEzC8F,EAAM4B,YAAYC,OAAS,EACxBN,SACEvB,EAAM4B,YACHE,KAAI,SAACC,GAAI,OAAKA,EAAKC,IAAI,IACvBC,QAAO,SAAC9F,EAAMC,GAAI,OAAKD,EAAOC,CAAI,IAAI,KACzCqF,iBACF,cAIVlI,EAAAA,GAAAA,MAAA,OAAKU,UAAU,gBAAeC,SAAA,EAC5BC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKoE,GAAAA,EAAgBjI,UAAU,yBAC5CV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,uBAAsBC,SAAA,EACnCC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAC,gBAC5CX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,6BAA4BC,SAAA,CAAC,IAC9B,OAAV6F,QAAU,IAAVA,GAAqB,QAAXX,EAAVW,EAAYoC,iBAAS,IAAA/C,GAAY,QAAZC,EAArBD,EAAuBgD,kBAAU,IAAA/C,OAAvB,EAAVA,EAAmCoC,2BAI3ClI,EAAAA,GAAAA,MAAA,OAAKU,UAAU,gBAAeC,SAAA,EAC5BC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKuE,GAAAA,EAAUpI,UAAU,yBACtCV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,uBAAsBC,SAAA,EACnCC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAC,kBAC5CX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,6BAA4BC,SAAA,CAAC,IAC9B,OAAV6F,QAAU,IAAVA,GAAqB,QAAXT,EAAVS,EAAYoC,iBAAS,IAAA7C,GAAc,QAAdC,EAArBD,EAAuBgD,oBAAY,IAAA/C,OAAzB,EAAVA,EAAqCkC,2BAI7CtH,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CACNtB,QACiB,OAAfiD,QAAe,IAAfA,GAAyB,QAAVZ,EAAfY,EAAiBmC,gBAAQ,IAAA/C,GAAK,QAALC,EAAzBD,EAA4B,UAAE,IAAAC,GAA9BA,EAAgC+C,MAChCpC,EAAgBmC,SAAS,GAAGC,KAAKX,OAAS,GACxC1H,EAAAA,GAAAA,KAACsI,EAAAA,EAAe,CAEdD,KAAMpC,EACNsC,QAASlC,GAFJmC,KAAKC,UAAUxC,KAKtBjG,EAAAA,GAAAA,KAAA,OAAAD,SAAK,sBAGTgD,MAAM,gCACNwB,QAAQ,QACRmE,iBAAiB,oBACjBC,gBAAiB,SAACC,GAAO,OAAKzC,EAAwByC,EAAQ,EAAC7I,UAE/DX,EAAAA,GAAAA,MAAA,OACEU,UAAU,gBACV+E,QAASuB,EACT/G,MAAO,CAAEkB,OAAQ,WAAYR,SAAA,EAE7BC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKkF,GAAAA,EAAiB/I,UAAU,yBAC7CV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,uBAAsBC,SAAA,EACnCC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAC,wBAC5CX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,6BAA4BC,SAAA,CAAC,SAEzCqH,SACCxB,EAAWkD,kBAAoB,KAC/BxB,6BAKVtH,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CACNtB,QACiB,OAAfiD,QAAe,IAAfA,GAAyB,QAAVV,EAAfU,EAAiBmC,gBAAQ,IAAA7C,GAAK,QAALC,EAAzBD,EAA4B,UAAE,IAAAC,GAA9BA,EAAgC6C,MAChCpC,EAAgBmC,SAAS,GAAGC,KAAKX,OAAS,GACxC1H,EAAAA,GAAAA,KAACsI,EAAAA,EAAe,CAEdD,KAAMpC,EACNsC,QAASrC,GAFJsC,KAAKC,UAAUxC,KAKtBjG,EAAAA,GAAAA,KAAA,OAAAD,SAAK,sBAGTgD,MAAM,uBACNwB,QAAQ,QACRmE,iBAAiB,oBACjBC,gBAAiB,SAACC,GAAO,OAAKzC,EAAwByC,EAAQ,EAAC7I,UAE/DX,EAAAA,GAAAA,MAAA,OACEU,UAAU,gBACV+E,QAASkB,EACT1G,MAAO,CAAEkB,OAAQ,WAAYR,SAAA,EAE7BC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKoF,GAAAA,EAAejJ,UAAU,yBAC3CV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,uBAAsBC,SAAA,EACnCC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAC,0BAG5CC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAC,yBAMxD,EAEMiJ,GAAgB,SAAHC,GAAwB,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAjB5D,EAAUqD,EAAVrD,WACvB,OACExG,EAAAA,GAAAA,MAAA8H,GAAAA,SAAA,CAAAnH,SAAA,EACEX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,gBAAeC,SAAA,EAC5BC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAK8F,GAAAA,EAAc3J,UAAU,yBAC1CV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,uBAAsBC,SAAA,EACnCC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAC,WAC5CX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,6BAA4BC,SAAA,CAAC,IAC9B,OAAV6F,QAAU,IAAVA,GAAqB,QAAXsD,EAAVtD,EAAYoC,iBAAS,IAAAkB,GAAe,QAAfC,EAArBD,EAAuBQ,qBAAa,IAAAP,OAA1B,EAAVA,EAAsC7B,2BAI9ClI,EAAAA,GAAAA,MAAA,OAAKU,UAAU,gBAAeC,SAAA,EAC5BC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKgG,GAAAA,EAAiB7J,UAAU,yBAC7CV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,uBAAsBC,SAAA,EACnCC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAC,gBAC5CX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,6BAA4BC,SAAA,CAAC,IAC9B,OAAV6F,QAAU,IAAVA,GAAqB,QAAXwD,EAAVxD,EAAYoC,iBAAS,IAAAoB,OAAX,EAAVA,EAAuBQ,mBAI/BxK,EAAAA,GAAAA,MAAA,OAAKU,UAAU,gBAAeC,SAAA,EAC5BC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKkG,GAAAA,EAAgB/J,UAAU,yBAC5CV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,uBAAsBC,SAAA,EACnCC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAC,eAC5CX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,6BAA4BC,SAAA,CAAC,IAC9B,OAAV6F,QAAU,IAAVA,GAAqB,QAAXyD,EAAVzD,EAAYoC,iBAAS,IAAAqB,OAAX,EAAVA,EAAuBS,kBAI/B1K,EAAAA,GAAAA,MAAA,OAAKU,UAAU,gBAAeC,SAAA,EAC5BC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKoG,GAAAA,EAAcjK,UAAU,yBAC1CV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,uBAAsBC,SAAA,EACnCC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAC,qBAC5CC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAC9B,OAAV6F,QAAU,IAAVA,GAAqB,QAAX0D,EAAV1D,EAAYoC,iBAAS,IAAAsB,OAAX,EAAVA,EAAuBU,yBAI9B5K,EAAAA,GAAAA,MAAA,OAAKU,UAAU,gBAAeC,SAAA,EAC5BC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKsG,GAAAA,EAAiBnK,UAAU,yBAC7CV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,uBAAsBC,SAAA,EACnCC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,6BAA4BC,SAAC,kBAC5CX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,6BAA4BC,SAAA,CAAC,SAC9B,OAAV6F,QAAU,IAAVA,GAAqB,QAAX2D,EAAV3D,EAAYoC,iBAAS,IAAAuB,GAAc,QAAdC,EAArBD,EAAuBW,oBAAY,IAAAV,OAAzB,EAAVA,EAAqClC,4BAMnD,EAEM6C,GAAiB,SAAHC,GAAiB,IAAXC,EAAGD,EAAHC,IAClBhL,EAAQ,CAAEM,MAAO,GAAIC,OAAQ,IAEnC,MACU,qBAARyK,GACQ,6BAARA,GACQ,eAARA,GAEOrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAK2G,EAAUjL,MAAOA,IAEhC,sBAARgL,GAAuC,iBAARA,GAC1BrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAK4G,EAASlL,MAAOA,IAE/B,eAARgL,GACKrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAK6G,EAAUnL,MAAOA,IAGhC,0BAARgL,GACKrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAK8G,EAAYpL,MAAOA,IAGlC,wBAARgL,GACKrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAK+G,EAAcrL,MAAOA,IAGpC,yBAARgL,GAA0C,8BAARA,GAC7BrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKgH,EAAYtL,MAAOA,IAGlC,wBAARgL,GAAyC,uBAARA,GAC5BrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKiH,EAAevL,MAAOA,IAGrC,qBAARgL,GACKrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKkH,EAAexL,MAAOA,IAGrC,sCAARgL,GACKrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKmH,EAAczL,MAAOA,IAGpC,WAARgL,GACKrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKoH,EAAa1L,MAAOA,IAGnC,+BAARgL,GACKrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKqH,EAAkB3L,MAAOA,IAGxC,wBAARgL,GACKrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKsH,EAAa5L,MAAOA,IAGnC,iBAARgL,GACKrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKuH,EAAe7L,MAAOA,IAGrC,mCAARgL,GACKrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKwH,EAAa9L,MAAOA,IAGnC,oCAARgL,GACKrK,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKyH,EAAgB/L,MAAOA,IAG3C,GACT,EAEMgM,GAAU,SAAHC,GAA8C,IAAxCC,EAAKD,EAALC,MAAOC,EAAQF,EAARE,SAAUC,EAAeH,EAAfG,gBAC5BC,EAAQF,EAASD,GAASE,EAAgBF,GAChD,OACEvL,EAAAA,GAAAA,KAAA,MACEX,MAAO,CACL0B,UAAW,SACXL,MAAOgL,GAAS,GAAKC,MAAMD,GAAS,MAAQ,MAC5C3L,SAES,IAAV2L,EAAc,KAAOA,EAAME,YAGlC,EAEMC,GAAsB,SAAHC,GAAkB,IAAZzD,EAAIyD,EAAJzD,KACvB0D,EAAY1D,EACfV,KAAI,SAACC,GAAI,OAAKR,SAASQ,EAAKC,KAAK,IACjCC,QAAO,SAACkE,EAAGC,GAAC,OAAKD,EAAIC,CAAC,GAAE,GAqB3B,OAnBU5D,EAAKV,KAAI,SAACC,EAAMsE,GACxB,OACE9M,EAAAA,GAAAA,MAAA,OAEEC,MAAO,CAAEM,MAAO,IAAKwM,QAAS,OAAQC,eAAgB,iBAAkBrM,SAAA,EAExEC,EAAAA,GAAAA,KAAA,QAAAD,SACG6H,EAAKyE,aAAaC,UACjB1E,EAAKyE,aAAa3E,OAAS,EAC3BE,EAAKyE,aAAa3E,WAGtBtI,EAAAA,GAAAA,MAAA,QAAAW,SAAA,EAAS6H,EAAKC,KAAOkE,EAAa,KAAKQ,QAAQ,GAAG,QAClDnN,EAAAA,GAAAA,MAAA,QAAAW,SAAA,CAAM,SACFqH,UAAUQ,EAAKC,KAAO,KAAW0E,WAAWjF,sBAX3C4E,EAeX,GAEF,EAEMM,GAAY,SAAHC,GA6Bb,IAPK,IArBLtG,EAAuBsG,EAAvBtG,wBACAuG,EAAQD,EAARC,SACAC,EAAeF,EAAfE,gBACAC,EAAeH,EAAfG,gBACAC,EAAkBJ,EAAlBI,mBACAC,EAAkBL,EAAlBK,mBACAC,EAAUN,EAAVM,WACAtB,EAAegB,EAAfhB,gBACAuB,EAAMP,EAANO,OACA/I,EAAQwI,EAARxI,SACAC,EAAUuI,EAAVvI,WACA+B,EAAewG,EAAfxG,gBACAgH,EAAWR,EAAXQ,YACAC,EAAcT,EAAdS,eACAC,EAAcV,EAAdU,eACAC,EAAkBX,EAAlBW,mBACAC,EAA0BZ,EAA1BY,2BACAC,EAAkBb,EAAlBa,mBAAkBC,EAAAd,EAClBe,eAAAA,OAAc,IAAAD,GAAAE,EAAAA,EAAAA,GAAA,GAAQC,IAAaH,EAAAI,EAAAlB,EACnChJ,OAAAA,OAAM,IAAAkK,EAAG,GAAEA,EAAAC,EAAAnB,EACX/I,cAAAA,OAAa,IAAAkK,EAAG,GAAEA,EAElBC,GAAsCC,EAAAA,EAAAA,UAAS,GAAEC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA1CI,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAClCI,GAAwCL,EAAAA,EAAAA,UAAS,KAAIM,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAA9CE,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GAE9BG,EAAaC,KAAKC,KAAK/B,EAAShF,OAAS2G,GACzCK,EAAc,GAEXC,EAAI,EAAGA,GAAKJ,EAAYI,IAC/BD,EAAYE,KAAKD,GAGnB,IAAME,EAAc,SAACC,GACnBZ,EAAea,OAAOD,EAAMrK,OAAOuK,IACrC,EAYMC,EAAoBP,EAAY/G,KAAI,SAACuH,GACzC,OACElP,EAAAA,GAAAA,KAAA,MAEEgP,GAAIE,EACJrK,QAASgK,EACT/O,UAAS,eAAAoD,OAAiB+K,IAAgBiB,EAAS,SAAW,MAAOnP,SAEpEmP,GALIA,EAQX,IAEMC,EAAkBlB,EAAcI,EAChCe,EAAmBD,EAAkBd,EACrCgB,EAAe3C,EAAS4C,MAAMF,EAAkBD,GAEhDI,EAAqB,SAACC,GAC1B,OAAOhC,GAAkBA,EAAegC,GACpC,cACA,oBACN,EAEMC,GAAmB,SAACD,GACxB,OAAOhC,GAAkBA,EAAegC,GAAO,GAAK,QACtD,EAKA,OACEpQ,EAAAA,GAAAA,MAAA8H,GAAAA,SAAA,CAAAnH,SAAA,EACEX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,eAAcC,SAAA,EAC3BC,EAAAA,GAAAA,KAAA,QAAAD,SAAM,qBAENC,EAAAA,GAAAA,KAAA0P,EAAAA,EAAA,CACEC,aAActB,EACduB,YAAY,EACZC,SAXiB,SAACC,GACxBxB,EAAgBwB,EAClB,EAUQzQ,MAAO,CAAEM,MAAO,GAAIoQ,aAAc,IAClCC,0BAA0B,EAC1BzH,QAAS,CACP,CAAEuH,MAAO,KAAMG,MAAO,MACtB,CAAEH,MAAO,KAAMG,MAAO,MACtB,CAAEH,MAAO,KAAMG,MAAO,MACtB,CAAEH,MAAO,MAAOG,MAAO,cAI7B7Q,EAAAA,GAAAA,MAAA,OAAKU,UAAU,qBAAoBC,SAAA,EACjCC,EAAAA,GAAAA,KAAA,OAAKX,MAAO,CAAEM,MAAO,QAASI,UAC5BX,EAAAA,GAAAA,MAAA,SACEC,MAAO,CACL6Q,YAAa,IACbC,YAAa,gBACbxQ,MAAO,QACPI,SAAA,EAEFC,EAAAA,GAAAA,KAAA,SAAAD,UACEX,EAAAA,GAAAA,MAAA,MACEC,MAAO,CACL+Q,YAAa,QACbF,YAAa,IACbC,YAAa,gBACbzP,MAAO,QACPK,UAAW,SACXsP,YAAa,IACbtQ,SAAA,EAEFC,EAAAA,GAAAA,KAAA,MAAIX,MAAO,CAAEsB,gBAAiB,4BAC9BX,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,SAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,gBAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,eAAe,EAAC5M,UAE/CX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAC,qBACrCC,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,eACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,OAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,OAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,MAAM,EAAC5M,UAEtCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAC,SACrCC,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,MACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,UAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,UAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,SAAS,EAAC5M,UAEzCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAC,YACrCC,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,SACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,OAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,OAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,MAAM,EAAC5M,UAEtCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAC,SACrCC,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,MACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,YAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,YAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,WAAW,EAAC5M,UAE3CX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAC,cACrCC,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,WACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,QAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,QAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,OAAO,EAAC5M,UAEvCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAC,UACrCC,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,OACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,aAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,kBAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,iBAAiB,EAAC5M,UAEjDX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAC,eACrCC,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,iBACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,WAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,iBAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,gBAAgB,EAAC5M,UAEhDX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAC,aACrCC,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,gBACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,OAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,OAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,MAAM,EAAC5M,UAEtCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAC,SACrCC,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,MACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,WAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,gBAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,eAAe,EAAC5M,UAE/CX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAC,aACrCC,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,eACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,SAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,SAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,QAAQ,EAAC5M,UAExCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAC,WACrCC,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,QACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,WAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,WAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,UAAU,EAAC5M,UAE1CX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAC,aACrCC,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,UACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,SAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IAAW,IACdI,MAAOqM,EAAW,SAClBhM,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,QAAQ,EAAC5M,UAExCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEgR,YAAa,OAAQtQ,SAAEZ,MACtCa,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,QACRC,OAAQA,EACRC,cAAeA,UAKrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,OAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAOnN,IAAW,IAAES,UAAW,WAAWhB,SAChD,SAGDC,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,OAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAOnN,IAAW,IAAES,UAAW,WAAWhB,SAChD,QAIAiN,IACC5N,EAAAA,GAAAA,MAAA8H,GAAAA,SAAA,CAAAnH,SAAA,EACEC,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,OAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IACAW,IAAS,IACZF,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,MAAM,EAAC5M,UAEtCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,OACE8E,IAAI,IACJnB,IAAK4M,EACLlR,MAAO,CACLM,MAAO,GACPC,OAAQ,GACRuM,QAAS,QACTkE,YAAa,UAGjBrQ,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,MACRC,OAAQA,EACRC,cAAeA,UAKrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,OAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IACAW,IAAS,IACZF,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,MAAM,EAAC5M,UAEtCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,OACE8E,IAAI,IACJnB,IAAK6M,GACLnR,MAAO,CACLM,MAAO,GACPC,OAAQ,GACRuM,QAAS,QACTkE,YAAa,UAGjBrQ,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,MACRC,OAAQA,EACRC,cAAeA,UAKrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,OAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IACAW,IAAS,IACZF,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,MAAM,EAAC5M,UAEtCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,OACE8E,IAAI,IACJnB,IAAK8M,GACLpR,MAAO,CACLM,MAAO,GACPC,OAAQ,GACRuM,QAAS,QACTkE,YAAa,UAGjBrQ,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,MACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,OAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IACAW,IAAS,IACZF,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,MAAM,EAAC5M,UAEtCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,OACE8E,IAAI,IACJnB,IAAK+M,GACLrR,MAAO,CACLM,MAAO,GACPC,OAAQ,GACRuM,QAAS,QACTkE,YAAa,UAGjBrQ,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,MACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,OAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IACAW,IAAS,IACZF,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,MAAM,EAAC5M,UAEtCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,OACE8E,IAAI,IACJnB,IAAKgN,GACLtR,MAAO,CACLM,MAAO,GACPC,OAAQ,GACRuM,QAAS,QACTkE,YAAa,UAGjBrQ,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,MACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,QAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IACAW,IAAS,IACZF,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,OAAO,EAAC5M,UAEvCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,OACE8E,IAAI,IACJnB,IAAKiN,GACLvR,MAAO,CACLM,MAAO,GACPC,OAAQ,GACRuM,QAAS,QACTkE,YAAa,UAGjBrQ,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,OACRC,OAAQA,EACRC,cAAeA,UAIrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,QAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IACAW,IAAS,IACZF,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,OAAO,EAAC5M,UAEvCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,OACE8E,IAAI,IACJnB,IAAKkN,GACLxR,MAAO,CACLM,MAAO,GACPC,OAAQ,GACRuM,QAAS,QACTkE,YAAa,UAGjBrQ,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,OACRC,OAAQA,EACRC,cAAeA,UAKrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,QAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IACAW,IAAS,IACZF,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,OAAO,EAAC5M,UAEvCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,OACE8E,IAAI,IACJnB,IAAKmN,GACLzR,MAAO,CACLM,MAAO,GACPC,OAAQ,GACRuM,QAAS,QACTkE,YAAa,UAGjBrQ,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,OACRC,OAAQA,EACRC,cAAeA,UAKrB1D,EAAAA,GAAAA,KAAA,MACEF,UAAWyP,EAAmB,OAC9BlQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACAnN,IACAW,IAAS,IACZF,UAAW,WAEb8D,QAAS,kBAAM8H,EAAgB,MAAM,EAAC5M,UAEtCX,EAAAA,GAAAA,MAAA,OACEC,MAAO,CACL8M,QAAS,OACTmE,WAAY,SACZlE,eAAgB,UAChBrM,SAAA,EAEFC,EAAAA,GAAAA,KAAA,OACE8E,IAAI,IACJnB,IAAKoN,GACL1R,MAAO,CACLM,MAAO,GACPC,OAAQ,GACRuM,QAAS,QACTkE,YAAa,UAGjBrQ,EAAAA,GAAAA,KAACsD,GAAQ,CACPE,OAAQ,MACRC,OAAQA,EACRC,cAAeA,kBAQ7BtE,EAAAA,GAAAA,MAAA,SAAAW,SAAA,CACGsP,EAAa1H,KAAI,SAACC,EAAMsE,GAAK,IAAA8E,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAC5BlS,EAAAA,GAAAA,MAAA,MAAgBC,OAAKoO,EAAAA,EAAAA,GAAA,GAAOzM,IAAUjB,SAAA,EACpCC,EAAAA,GAAAA,KAAA,MACEX,MAAO,CACLsB,gBAAiB,wBACjBG,SAAU,GACVnB,MAAO,GACPuB,YAAa,EACbH,UAAW,UACXhB,SAEDmM,EAAQ,KAEX9M,EAAAA,GAAAA,MAAA,MACEU,UAAW2P,GAAiB,SAC5BpQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACA5M,IAAO,IACVE,UAAW,SACXD,SAAU,IACVyQ,SAAU,MACVxR,SAAA,EAEFC,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CACNtB,QAAS4E,EAAK4J,aACdzO,MAAO,mBACPwB,QAAQ,QAAOxE,UAEfC,EAAAA,GAAAA,KAAA,QACEX,MAAO,CAAEkB,OAAQ,WACjBT,UAAU,cACV+E,QAAS,kBACPzD,GACE,oCACAwG,EAAK4J,aACN,EACFzR,SAAA,MAAAmD,OAEM0E,EAAK4J,aAAalF,UACvB1E,EAAK4J,aAAa9J,OAAS,SAIjC1H,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CACNtB,SAC4B,OAA1BqK,QAA0B,IAA1BA,GAAoC,QAAV2D,EAA1B3D,EAA4BjF,gBAAQ,IAAA4I,OAAV,EAA1BA,EAAsCtJ,QAAS,GAC7C1H,EAAAA,GAAAA,KAACyR,EAAAA,EAAkB,CAEjBpJ,KAAMgF,EACN9E,QAAS6E,GAFJ5E,KAAKC,UAAU4E,KAKtBrN,EAAAA,GAAAA,KAAA,OAAAD,SAAK,sBAGTgD,MAAK,6BAAAG,OAA+B0E,EAAK4J,aAAalC,OACnD,IAEH/K,QAAQ,QACRmE,iBAAiB,oBACjBC,gBAAiB,SAACC,GAAO,OACvBzC,EAAwByC,EAAQ,EACjC7I,UAEDC,EAAAA,GAAAA,KAAA,QAAMF,UAAU,eAAcC,UAC5BC,EAAAA,GAAAA,KAAC0R,EAAAA,EAAgB,CACfrS,MAAO,CAAEuF,OAAQ,gBACjBC,QAAS,kBAAMyI,EAAmB1F,EAAK4J,aAAa,SAK1DxR,EAAAA,GAAAA,KAAC6D,GAAK,CACJE,QAAS6D,EAAK4J,aACdxN,WAAY4D,EAAK5D,WACjBC,SAAUA,EACVC,WAAYA,QAGhBlE,EAAAA,GAAAA,KAAA,MACEF,UAAW2P,GAAiB,OAC5BpQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO5M,IAAO,IAAEE,UAAW,WAAWhB,SAE1C6H,EAAK+J,IAAIpF,QAAQ,MAEpBvM,EAAAA,GAAAA,KAAA,MACEF,UAAW2P,GAAiB,UAC5BpQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO5M,IAAO,IAAEE,UAAW,SAAUN,SAAU,KAAKV,SAExD6H,EAAKgK,UAER5R,EAAAA,GAAAA,KAAA,MACEF,UAAW2P,GAAiB,OAC5BpQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO5M,IAAO,IAAEE,UAAW,WAAWhB,UAE3CC,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CACNtB,QAAS4E,EAAKyC,IACdtH,MAAO,WACPwB,QAAQ,QAAOxE,UAEfC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEkB,OAAQ,WAAYR,UACjCC,EAAAA,GAAAA,KAACmK,GAAc,CAACE,IAAKzC,EAAKyC,aAIhCrK,EAAAA,GAAAA,KAAA,MACEX,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACA5M,IAAO,IACVE,UAAW,SACXN,SAAU,KACVV,SAED6H,EAAKiK,YAER7R,EAAAA,GAAAA,KAAA,MACEF,UAAW2P,GAAiB,QAC5BpQ,MAAO,CAAEwB,QAAAA,GAASE,UAAW,UAC7B8D,QAAS,kBAAM+H,EAAgBhF,EAAK4J,aAAa,EAACzR,UAElDC,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CACNtB,QACiB,OAAfiD,QAAe,IAAfA,GAAyB,QAAVgL,EAAfhL,EAAiBmC,gBAAQ,IAAA6I,GAAK,QAALC,EAAzBD,EAA4B,UAAE,IAAAC,GAA9BA,EAAgC7I,MAChCpC,EAAgBmC,SAAS,GAAGC,KAAKX,OAAS,GACxC1H,EAAAA,GAAAA,KAACsI,EAAAA,EAAe,CAEdD,KAAMpC,EACNsC,QAAS0E,GAFJzE,KAAKC,UAAUxC,KAKtBjG,EAAAA,GAAAA,KAAA,OAAAD,SAAK,sBAGTgD,MAAK,4BAAAG,OAA8B0E,EAAK4J,aAAalC,OAClD,IAEH/K,QAAQ,QACRmE,iBAAiB,oBACjBC,gBAAiB,SAACC,GAAO,OACvBzC,EAAwByC,EAAQ,EACjC7I,UAEDX,EAAAA,GAAAA,MAAA,QACEC,MAAO,CACL8M,QAAS,cACTzL,MAAO,UACPH,OAAQ,WACRR,SAAA,EAEFC,EAAAA,GAAAA,KAAC8R,EAAAA,EAAe,CAACzS,MAAO,CAAEgR,YAAa,KAAO,SAC7CjJ,UACEQ,EAAKC,KAAO,KAAW0E,WACxBjF,yBAIRtH,EAAAA,GAAAA,KAAA,MACEF,UAAW2P,GAAiB,aAC5BpQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO5M,IAAO,IAAEE,UAAW,WAAWhB,UAE3CC,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CACNtB,SACEhD,EAAAA,GAAAA,KAAC6L,GAAmB,CAClBxD,KAAMT,EAAKmK,eAAeC,YAG9BjP,MAAO,iBACPwB,QAAQ,QAAOxE,UAEfC,EAAAA,GAAAA,KAAA,QAAMX,MAAO,CAAEkB,OAAQ,WAAYR,SAChC6H,EAAKmK,eAAeC,UAAUtK,cAIrC1H,EAAAA,GAAAA,KAAA,MACEF,UAAW2P,GAAiB,WAC5BpQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO5M,IAAO,IAAEE,UAAW,WAChC8D,QAAS,kBAAMgI,EAAmBjF,EAAK4J,aAAa,EAACzR,UAErDC,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CACNtB,QACiB,OAAfiD,QAAe,IAAfA,GAAyB,QAAVkL,EAAflL,EAAiBmC,gBAAQ,IAAA+I,GAAK,QAALC,EAAzBD,EAA4B,UAAE,IAAAC,GAA9BA,EAAgC/I,MAChCpC,EAAgBmC,SAAS,GAAGC,KAAKX,OAAS,GACxC1H,EAAAA,GAAAA,KAACsI,EAAAA,EAAe,CAEdD,KAAMpC,EACNsC,QAAS2E,GAFJ1E,KAAKC,UAAUxC,KAKtBjG,EAAAA,GAAAA,KAAA,OAAAD,SAAK,sBAGTgD,MAAK,yBAAAG,OAA2B0E,EAAK4J,aAAalC,OAC/C,IAEH/K,QAAQ,QACRmE,iBAAiB,oBACjBC,gBAAiB,SAACC,GAAO,OACvBzC,EAAwByC,EAAQ,EACjC7I,UAEDX,EAAAA,GAAAA,MAAA,QACEC,MAAO,CACL8M,QAAS,cACTzL,MAAO,UACPH,OAAQ,WACRR,SAAA,EAEFC,EAAAA,GAAAA,KAAC8R,EAAAA,EAAe,CAACzS,MAAO,CAAEgR,YAAa,KAAO,SAC7CjJ,UACEQ,EAAKqK,cAAgB,KAAW1F,WACjCjF,yBAKRtH,EAAAA,GAAAA,KAAA,MACEF,UAAW2P,GAAiB,OAC5BpQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO5M,IAAO,IAAEE,UAAW,WAAWhB,SAE1C6H,EAAKsK,OAERlS,EAAAA,GAAAA,KAAA,MACEF,UAAW2P,GAAiB,WAC5BpQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO5M,IAAO,IAAEE,UAAW,WAChC8D,QAAS,kBAAMiI,EAAmBlF,EAAK4J,aAAa,EAACzR,UAErDC,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CACNtB,QACiB,OAAfiD,QAAe,IAAfA,GAAyB,QAAVoL,EAAfpL,EAAiBmC,gBAAQ,IAAAiJ,GAAK,QAALC,EAAzBD,EAA4B,UAAE,IAAAC,GAA9BA,EAAgCjJ,MAChCpC,EAAgBmC,SAAS,GAAGC,KAAKX,OAAS,GACxC1H,EAAAA,GAAAA,KAACsI,EAAAA,EAAe,CAEdD,KAAMpC,EACNsC,QAAS4E,GAFJ3E,KAAKC,UAAUxC,KAKtBjG,EAAAA,GAAAA,KAAA,OAAAD,SAAK,sBAGTgD,MAAK,yBAAAG,OAA2B0E,EAAK4J,aAAalC,OAC/C,IAEH/K,QAAQ,QACRmE,iBAAiB,oBACjBC,gBAAiB,SAACC,GAAO,OACvBzC,EAAwByC,EAAQ,EACjC7I,UAEDX,EAAAA,GAAAA,MAAA,QACEC,MAAO,CACL8M,QAAS,cACTzL,MAAO,UACPH,OAAQ,WACRR,SAAA,EAEFC,EAAAA,GAAAA,KAAC8R,EAAAA,EAAe,CAACzS,MAAO,CAAEgR,YAAa,KACtCjJ,SAASQ,EAAKuK,cAAc7K,yBAKnCtH,EAAAA,GAAAA,KAAA,MACEF,UAAW2P,GAAiB,SAC5BpQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO5M,IAAO,IAAEE,UAAW,WAAWhB,SAE1C6H,EAAKwK,SAERpS,EAAAA,GAAAA,KAAA,MACEF,UAAW2P,GAAiB,WAC5BpQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO5M,IAAO,IAAEE,UAAW,WAAWhB,SAE1C6H,EAAKyK,WAGRrS,EAAAA,GAAAA,KAAA,MAAIX,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO5M,IAAO,IAAEE,UAAW,WAAWhB,SACnB,IAAzB6H,EAAK0K,iBAAqD,IAA5B1K,EAAK2K,mBAChC,MACA,OAENvS,EAAAA,GAAAA,KAAA,MACEF,UAAW2P,GAAiB,OAC5BpQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO5M,IAAO,IAAEE,UAAW,WAAWhB,UAE3CC,EAAAA,GAAAA,KAAA,KACEX,MAAO,CAAEqB,MAAO,oBAChB8D,KAAI,UAAAtB,OAAY0E,EAAK5D,WAAU,kBAC/BS,OAAO,SACPC,IAAI,sBAAqB3E,SAEX,SAAb6H,EAAK4K,IAAiB,IAAM,WAGjCxS,EAAAA,GAAAA,KAAA,MACEF,UAAW2P,GAAiB,OAC5BpQ,OAAKoO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO5M,IAAO,IAAEE,UAAW,WAAWhB,UAE3CC,EAAAA,GAAAA,KAAA,KACEX,MAAO,CAAEqB,MAAO,oBAChB8D,KAAI,UAAAtB,OAAY0E,EAAK5D,WAAU,eAC/BS,OAAO,SACPC,IAAI,sBAAqB3E,SAEP,SAAjB6H,EAAK6K,QAAqB,IAAM,UAIpCzF,IACC5N,EAAAA,GAAAA,MAAA8H,GAAAA,SAAA,CAAAnH,SAAA,EACEC,EAAAA,GAAAA,KAACqL,GAAO,CACNE,MAAO,MACPC,SAAU5D,EAAK4D,SACfC,gBAAiBA,KAEnBzL,EAAAA,GAAAA,KAACqL,GAAO,CACNE,MAAO,MACPC,SAAU5D,EAAK4D,SACfC,gBAAiBA,KAEnBzL,EAAAA,GAAAA,KAACqL,GAAO,CACNE,MAAO,MACPC,SAAU5D,EAAK4D,SACfC,gBAAiBA,KAEnBzL,EAAAA,GAAAA,KAACqL,GAAO,CACNE,MAAO,MACPC,SAAU5D,EAAK4D,SACfC,gBAAiBA,KAEnBzL,EAAAA,GAAAA,KAACqL,GAAO,CACNE,MAAO,MACPC,SAAU5D,EAAK4D,SACfC,gBAAiBA,KAEnBzL,EAAAA,GAAAA,KAACqL,GAAO,CACNE,MAAO,OACPC,SAAU5D,EAAK4D,SACfC,gBAAiBA,KAEnBzL,EAAAA,GAAAA,KAACqL,GAAO,CACNE,MAAO,OACPC,SAAU5D,EAAK4D,SACfC,gBAAiBA,KAEnBzL,EAAAA,GAAAA,KAACqL,GAAO,CACNE,MAAO,OACPC,SAAU5D,EAAK4D,SACfC,gBAAiBA,KAEnBzL,EAAAA,GAAAA,KAACqL,GAAO,CACNE,MAAO,MACPC,SAAU5D,EAAK4D,SACfC,gBAAiBA,SA7VhBS,EAiWJ,KAEPlM,EAAAA,GAAAA,KAAA,MAAAD,UACEC,EAAAA,GAAAA,KAAA,oBAKRA,EAAAA,GAAAA,KAAA,OAAKF,UAAU,iBAAgBC,UAC7BX,EAAAA,GAAAA,MAAA,MAAIU,UAAU,eAAcC,SAAA,EAC1BC,EAAAA,GAAAA,KAAA,MACE6E,QAjjCO,WACjBqJ,GAAe,SAACwE,GAAQ,OAAmB,IAAbA,EAAiBA,EAAWA,EAAW,CAAC,GACxE,EAgjCY5S,UAAS,+BAAAoD,OACS,IAAhB+K,EAAoB,WAAa,MAChClO,UAEHC,EAAAA,GAAAA,KAAC2S,EAAAA,EAAY,MAEd1D,GACDjP,EAAAA,GAAAA,KAAA,MACE6E,QAhkCO,WACjBqJ,GAAe,SAACwE,GAAQ,OACtBA,IAAanE,EAAamE,EAAWA,EAAW,CAAC,GAErD,EA6jCY5S,UAAS,+BAAAoD,OACP+K,IAAgBM,EAAa,WAAa,MACzCxO,UAEHC,EAAAA,GAAAA,KAAC4S,EAAAA,EAAa,gBAO5B,EAEIC,GAAQ,KAENnF,GAAgB,CACpBoF,OAAO,EACPnB,KAAK,EACLC,QAAQ,EACRvH,KAAK,EACLxC,MAAM,EACNmK,WAAW,EACXH,UAAU,EACVkB,OAAO,EACPC,SAAS,EACTd,KAAK,EACLe,SAAS,EACTb,OAAO,EACPC,SAAS,EACTG,KAAK,EACLU,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,KAAK,GACLC,GAAA,SAAAC,EAAAC,EAAAC,IAAAC,EAAAA,EAAAA,GAAAJ,EAAAC,GAAA,IAAAI,GAAAC,EAAAA,EAAAA,GAAAN,GAEA,SAAAA,EAAYO,GAAQ,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EA2B4C,OA3B5CC,EAAAA,EAAAA,GAAA,KAAAb,IACjBY,EAAAP,EAAAS,KAAA,KAAMP,IA6BRhO,wBAA0B,SAACyC,GACzB4L,EAAKG,SAAS,CAAEC,cAAehM,GACjC,EAAC4L,EA8VDlH,mBAAkB,SAAAuH,GAAA,OAAAT,EAAAA,IAAA5S,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAoT,EAAOtD,GAAY,IAAAuD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA7T,EAAAA,EAAAA,KAAAK,MAAA,SAAAyT,GAAA,cAAAA,EAAAvT,KAAAuT,EAAAtT,MAAA,OAEmC,OADzEuS,EAAKG,SAAS,CAAEC,eAAe,IACzBG,EAAG,iDAAA7R,OAAoDsO,GAAY+D,EAAAvT,KAAA,EAAAuT,EAAAtT,KAAA,EAEhDuT,MAAMT,GAAK,KAAD,EAAnB,OAARC,EAAQO,EAAAE,KAAAF,EAAAtT,KAAA,EACQ+S,EAASU,OAAO,KAAD,GAA/BT,EAAOM,EAAAE,OACmC,IAAhCE,OAAOC,KAAKX,GAASvN,QAG7BwN,EAAUS,OAAOE,QAAQZ,GAAStN,KAAI,SAAAmO,GAAA,IAAAC,GAAA/H,EAAAA,EAAAA,GAAA8H,EAAA,GAAEE,EAACD,EAAA,GAAEE,EAACF,EAAA,SAAO,CACvDC,EAAGjH,OAAOiH,GACVC,EAAGlH,OAAOkH,EAAEC,KACb,IAEKf,EAAeQ,OAAOE,QAAQZ,GAAStN,KAAI,SAAAwO,GAAA,IAAAC,GAAApI,EAAAA,EAAAA,GAAAmI,EAAA,GAAEH,EAACI,EAAA,GAAEH,EAACG,EAAA,SAAO,CAC5DJ,EAAGjH,OAAOiH,GACVC,EAAGlH,OAAOkH,EAAEI,UACb,IAEKjB,EAAa,GAAAlS,QAAAoT,EAAAA,EAAAA,GAAIpB,IAAOoB,EAAAA,EAAAA,GAAKnB,IAAcxN,KAC/C,SAAC4O,GAAS,OAAKA,EAAUP,CAAC,IAEtBX,EAAO7G,KAAKgI,IAAGnU,MAARmM,MAAI8H,EAAAA,EAAAA,GAAQlB,IACnBE,EAAO9G,KAAK0H,IAAG7T,MAARmM,MAAI8H,EAAAA,EAAAA,GAAQlB,IAEzBZ,EAAKG,SAAS,CAAEO,QAAAA,EAASC,aAAAA,EAAcE,KAAAA,EAAMC,KAAAA,KAlB7Cd,EAAKG,SAAS,CAAE3O,UAAW,OAmB5BuP,EAAAtT,KAAA,iBAAAsT,EAAAvT,KAAA,GAAAuT,EAAAkB,GAAAlB,EAAA,SAEDmB,QAAQC,MAAM,4BAADzT,OAA6B6R,EAAG,KAAAQ,EAAAkB,IAAY,yBAAAlB,EAAAnT,OAAA,GAAA0S,EAAA,oBAE5DzS,MAAA,KAAAC,UAAA,EAAAkS,EAED1H,mBAAkB,SAAA8J,GAAA,OAAAvC,EAAAA,IAAA7S,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAmV,EAAOrF,GAAY,IAAAuD,EAAAC,EAAAC,EAAAjP,EAAA,OAAAvE,EAAAA,EAAAA,KAAAK,MAAA,SAAAgV,GAAA,cAAAA,EAAA9U,KAAA8U,EAAA7U,MAAA,OAEkC,OADxEuS,EAAKG,SAAS,CAAEC,eAAe,IACzBG,EAAG,gDAAA7R,OAAmDsO,GAAYsF,EAAA9U,KAAA,EAAA8U,EAAA7U,KAAA,EAE/CuT,MAAMT,GAAK,KAAD,EAAnB,OAARC,EAAQ8B,EAAArB,KAAAqB,EAAA7U,KAAA,EACQ+S,EAASU,OAAO,KAAD,GAA/BT,EAAO6B,EAAArB,OACmC,IAAhCE,OAAOC,KAAKX,GAASvN,QAG7B1B,EAAY2P,OAAOE,QAAQZ,GAAStN,KAAI,SAAAoP,GAAA,IAAAC,GAAAhJ,EAAAA,EAAAA,GAAA+I,EAAA,GAAEf,EAACgB,EAAA,GAAEf,EAACe,EAAA,SAAO,CACzDhB,EAAGjH,OAAOiH,GACVC,EAAGlH,OAAOkH,GACX,IACDzB,EAAKG,SAAS,CAAE3O,UAAAA,KANhBwO,EAAKG,SAAS,CAAE3O,UAAW,OAO5B8Q,EAAA7U,KAAA,iBAAA6U,EAAA9U,KAAA,GAAA8U,EAAAL,GAAAK,EAAA,SAEDJ,QAAQC,MAAM,4BAADzT,OAA6B6R,EAAG,KAAA+B,EAAAL,IAAY,yBAAAK,EAAA1U,OAAA,GAAAyU,EAAA,oBAE5DxU,MAAA,KAAAC,UAAA,EAAAkS,EAEDpO,yBAAuB5E,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAuV,IAAA,IAAAlC,EAAAC,EAAAC,EAAAjP,EAAA,OAAAvE,EAAAA,EAAAA,KAAAK,MAAA,SAAAoV,GAAA,cAAAA,EAAAlV,KAAAkV,EAAAjV,MAAA,OAEf,OADTuS,EAAKG,SAAS,CAAEC,eAAe,IACzBG,EAAG,qDAAAmC,EAAAlV,KAAA,EAAAkV,EAAAjV,KAAA,EAEgBuT,MAAMT,GAAK,KAAD,EAAnB,OAARC,EAAQkC,EAAAzB,KAAAyB,EAAAjV,KAAA,EACQ+S,EAASU,OAAO,KAAD,GAA/BT,EAAOiC,EAAAzB,OACmC,IAAhCE,OAAOC,KAAKX,GAASvN,QAG7B1B,EAAY2P,OAAOE,QAAQZ,GAAStN,KAAI,SAAAwP,GAAA,IAAAC,GAAApJ,EAAAA,EAAAA,GAAAmJ,EAAA,GAAEnB,EAACoB,EAAA,GAAEnB,EAACmB,EAAA,SAAO,CACzDpB,EAAGjH,OAAOiH,GACVC,EAAGzH,KAAK6I,MAAMtI,OAAOkH,GAAK,KAC3B,IAEDzB,EAAKG,SAAS,CAAE3O,UAAAA,KAPhBwO,EAAKG,SAAS,CAAE3O,UAAW,OAQ5BkR,EAAAjV,KAAA,iBAAAiV,EAAAlV,KAAA,GAAAkV,EAAAT,GAAAS,EAAA,SAEDR,QAAQC,MAAM,4BAADzT,OAA6B6R,EAAG,KAAAmC,EAAAT,IAAY,yBAAAS,EAAA9U,OAAA,GAAA6U,EAAA,mBAE5DzC,EAEDzO,sBAAoBvE,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAA4V,IAAA,IAAAvC,EAAAC,EAAAC,EAAAjP,EAAA,OAAAvE,EAAAA,EAAAA,KAAAK,MAAA,SAAAyV,GAAA,cAAAA,EAAAvV,KAAAuV,EAAAtV,MAAA,OAEZ,OADTuS,EAAKG,SAAS,CAAEC,eAAe,IACzBG,EAAG,6CAAAwC,EAAAvV,KAAA,EAAAuV,EAAAtV,KAAA,EAEgBuT,MAAMT,GAAK,KAAD,EAAnB,OAARC,EAAQuC,EAAA9B,KAAA8B,EAAAtV,KAAA,EACQ+S,EAASU,OAAO,KAAD,GAA/BT,EAAOsC,EAAA9B,OACmC,IAAhCE,OAAOC,KAAKX,GAASvN,QAG7B1B,EAAY2P,OAAOE,QAAQZ,GAAStN,KAAI,SAAA6P,GAAA,IAAAC,GAAAzJ,EAAAA,EAAAA,GAAAwJ,EAAA,GAAExB,EAACyB,EAAA,GAAExB,EAACwB,EAAA,SAAO,CACzDzB,EAAGjH,OAAOiH,GACVC,EAAGzH,KAAK6I,MAAMtI,OAAOkH,GAAK,KAC3B,IAEDzB,EAAKG,SAAS,CAAE3O,UAAAA,KAPhBwO,EAAKG,SAAS,CAAE3O,UAAW,OAQ5BuR,EAAAtV,KAAA,iBAAAsV,EAAAvV,KAAA,GAAAuV,EAAAd,GAAAc,EAAA,SAEDb,QAAQC,MAAM,4BAADzT,OAA6B6R,EAAG,KAAAwC,EAAAd,IAAY,yBAAAc,EAAAnV,OAAA,GAAAkV,EAAA,mBAE5D9C,EAED3H,mBAAkB,SAAA6K,GAAA,OAAApD,EAAAA,IAAA9S,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAiW,EAAOnG,GAAY,IAAAuD,EAAAC,EAAAC,EAAAjP,EAAA,OAAAvE,EAAAA,EAAAA,KAAAK,MAAA,SAAA8V,GAAA,cAAAA,EAAA5V,KAAA4V,EAAA3V,MAAA,OAEkC,OADxEuS,EAAKG,SAAS,CAAEC,eAAe,IACzBG,EAAG,gDAAA7R,OAAmDsO,GAAYoG,EAAA5V,KAAA,EAAA4V,EAAA3V,KAAA,EAE/CuT,MAAMT,GAAK,KAAD,EAAnB,OAARC,EAAQ4C,EAAAnC,KAAAmC,EAAA3V,KAAA,EACQ+S,EAASU,OAAO,KAAD,GAA/BT,EAAO2C,EAAAnC,OACmC,IAAhCE,OAAOC,KAAKX,GAASvN,QAG7B1B,EAAY2P,OAAOE,QAAQZ,GAAStN,KAAI,SAAAkQ,GAAA,IAAAC,GAAA9J,EAAAA,EAAAA,GAAA6J,EAAA,GAAE7B,EAAC8B,EAAA,GAAE7B,EAAC6B,EAAA,SAAO,CACzD9B,EAAGjH,OAAOiH,GACVC,EAAGzH,KAAK6I,MAAMtI,OAAOkH,GAAK,KAC3B,IACDzB,EAAKG,SAAS,CAAE3O,UAAAA,KANhBwO,EAAKG,SAAS,CAAE3O,UAAW,OAO5B4R,EAAA3V,KAAA,iBAAA2V,EAAA5V,KAAA,GAAA4V,EAAAnB,GAAAmB,EAAA,SAEDlB,QAAQC,MAAM,4BAADzT,OAA6B6R,EAAG,KAAA6C,EAAAnB,IAAY,yBAAAmB,EAAAxV,OAAA,GAAAuV,EAAA,oBAE5DtV,MAAA,KAAAC,UAAA,EAAAkS,EAED5H,gBAAe,SAAAmL,GAAA,OAAAxD,EAAAA,IAAA/S,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAAG,SAAAsW,EAAOxG,GAAY,IAAAuD,EAAAC,EAAAC,EAAAjP,EAAA,OAAAvE,EAAAA,EAAAA,KAAAK,MAAA,SAAAmW,GAAA,cAAAA,EAAAjW,KAAAiW,EAAAhW,MAAA,OAEkC,OADrEuS,EAAKG,SAAS,CAAEC,eAAe,IACzBG,EAAG,6CAAA7R,OAAgDsO,GAAYyG,EAAAjW,KAAA,EAAAiW,EAAAhW,KAAA,EAE5CuT,MAAMT,GAAK,KAAD,EAAnB,OAARC,EAAQiD,EAAAxC,KAAAwC,EAAAhW,KAAA,EACQ+S,EAASU,OAAO,KAAD,GAA/BT,EAAOgD,EAAAxC,OACmC,IAAhCE,OAAOC,KAAKX,GAASvN,QAG7B1B,EAAY2P,OAAOE,QAAQZ,GAAStN,KAAI,SAAAuQ,GAAA,IAAAC,GAAAnK,EAAAA,EAAAA,GAAAkK,EAAA,GAAElC,EAACmC,EAAA,GAAElC,EAACkC,EAAA,SAAO,CACzDnC,EAAGjH,OAAOiH,GACVC,EAAGzH,KAAK6I,MAAMtI,OAAOkH,GAAK,KAC3B,IACDzB,EAAKG,SAAS,CAAE3O,UAAAA,KANhBwO,EAAKG,SAAS,CAAE3O,UAAW,OAO5BiS,EAAAhW,KAAA,iBAAAgW,EAAAjW,KAAA,GAAAiW,EAAAxB,GAAAwB,EAAA,SAEDvB,QAAQC,MAAM,4BAADzT,OAA6B6R,EAAG,KAAAkD,EAAAxB,IAAY,yBAAAwB,EAAA7V,OAAA,GAAA4V,EAAA,oBAE5D3V,MAAA,KAAAC,UAAA,EAhgBCkS,EAAK3O,MAAQ,CACX+O,eAAe,EACf5O,UAAW,GACXqC,KAAM,GACNzC,WAAY,GACZnC,OAAQ,OACRC,cAAe,OACf+D,YAAa,GACb2Q,aAAc,GACdC,iBAAkB,GAClBvS,mBAAmB,EACnBwS,WAAY,GACZC,WAAY,GACZ/K,eAAgBE,GAChB8K,YAAa,CAAC,EACdC,SAAS,EACTC,YAAa,KACbrD,KAAM,KACNC,KAAM,MAERd,EAAK7H,gBAAkB6H,EAAK7H,gBAAgBgM,MAAIC,EAAAA,EAAAA,GAAApE,IAChDA,EAAK3H,mBAAqB2H,EAAK3H,mBAAmB8L,MAAIC,EAAAA,EAAAA,GAAApE,IACtDA,EAAK1H,mBAAqB0H,EAAK1H,mBAAmB6L,MAAIC,EAAAA,EAAAA,GAAApE,IACtDA,EAAK5H,gBAAkB4H,EAAK5H,gBAAgB+L,MAAIC,EAAAA,EAAAA,GAAApE,IAChDA,EAAKzO,qBAAuByO,EAAKzO,qBAAqB4S,MAAIC,EAAAA,EAAAA,GAAApE,IAC1DA,EAAKlH,mBAAqBkH,EAAKlH,mBAAmBqL,MAAIC,EAAAA,EAAAA,GAAApE,IAAOA,CAC/D,CAmiCC,OAniCAqE,EAAAA,EAAAA,GAAAjF,EAAA,EAAApE,IAAA,qBAAAM,MAAA,kBAAAgE,EAAAA,IAAAtS,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAMD,SAAAoX,IAAA,IAAAR,EAAAS,EAAA,OAAAtX,EAAAA,EAAAA,KAAAK,MAAA,SAAAkX,GAAA,cAAAA,EAAAhX,KAAAgX,EAAA/W,MAAA,OACQqW,GAAaW,EAAAA,EAAAA,IAAU,cAEvBF,EAAMT,EAAW5Q,OAAS,EAAIc,KAAK0Q,MAAMZ,GAAc,GAE7Da,KAAKxE,SAAS,CAAE2D,WAAYS,IAE5BI,KAAKC,cAAc,wBAAAJ,EAAA5W,OAAA,GAAA0W,EAAA,WACpBzW,MAAA,KAAAC,UAAA,IAAAkN,IAAA,cAAAM,MAAA,kBAAAiE,EAAAA,IAAAvS,EAAAA,EAAAA,IAAAC,EAAAA,EAAAA,KAAAC,MAED,SAAA2X,IAAA,IAAAhR,EAAAiR,EAAA,YAAA7X,EAAAA,EAAAA,KAAAK,MAAA,SAAAyX,GAAA,cAAAA,EAAAvX,KAAAuX,EAAAtX,MAAA,WACMkX,KAAKtT,MAAM+O,cAAc,CAAD2E,EAAAtX,KAAA,eAAAsX,EAAAC,OAAA,wBAAAD,EAAAtX,KAAA,GAGTwX,EAAAA,EAAAA,MAAU,KAAD,EAAtBpR,EAAIkR,EAAA9D,KAEN0D,KAAKtT,MAAM4S,SACbU,KAAKxE,SAAS,CAAE8D,SAAS,IAO3BU,KAAKxE,SACH,CACEtM,KAAMA,EAAKA,KACXzC,WAAYyC,EAAKzC,WACjB6F,gBAAiBpD,EAAKoD,gBACtB3F,mBAAmB,IAErB,kBAAMwT,EAAKI,SAAS,IACnB,wBAAAH,EAAAnX,OAAA,GAAAiX,EAAA,WACJhX,MAAA,KAAAC,UAAA,IAAAkN,IAAA,oBAAAM,MAED,WAAqB,IAAD6J,EAAA,KAClB9G,GAAQ+G,aAAY,WAClBD,EAAKhF,SAAS,CAAE7O,mBAAmB,IAAS,kBAAM6T,EAAKP,aAAa,GAEtE,GAAG,IACL,GAAC,CAAA5J,IAAA,uBAAAM,MAED,WACE+J,cAAchH,GAChB,GAAC,CAAArD,IAAA,WAAAM,MAED,SAAS/L,GAAU,IAAD+V,EAAA,KAMVxB,GAAaW,EAAAA,EAAAA,IAAU,cAE7B,GAA0B,IAAtBX,EAAW5Q,OAAc,CAE3B,IAAMqS,EAAgBvR,KAAKC,UAAU,CAAC1E,KACtCiW,EAAAA,EAAAA,IAAU,aAAcD,GACxBZ,KAAKxE,SAAS,CAAE2D,WAAYyB,IAAiB,kBAAMD,EAAKJ,SAAS,GACnE,KAAO,CAEL,IAAMO,EAAezR,KAAK0Q,MAAMZ,GAGhC,GAAI2B,EAAaC,QAAQnW,IAAY,EAAG,CAGtC,IAAMoW,EAAqBF,EAAaG,QACtC,SAACxS,GAAI,OAAKA,IAAS7D,CAAO,IAGtBsW,EAAkB7R,KAAKC,UAAU0R,GACvChB,KAAKxE,SAAS,CAAE2D,WAAY6B,IAAsB,kBAAML,EAAKJ,SAAS,KACtEM,EAAAA,EAAAA,IAAU,aAAcK,EAC1B,KAAO,CAELJ,EAAaA,EAAavS,QAAU3D,EAEpC,IAAMsW,EAAkB7R,KAAKC,UAAUwR,GAEvCd,KAAKxE,SAAS,CAAE2D,WAAY2B,IAAgB,kBAAMH,EAAKJ,SAAS,KAChEM,EAAAA,EAAAA,IAAU,aAAcK,EAC1B,CACF,CACF,GAAC,CAAA7K,IAAA,qBAAAM,MAED,SAAmBzH,GAAO,IAADiS,EAAA,KACvB,MAA8B,KAA1BnB,KAAKtT,MAAM0S,WACNlQ,EAEeA,EAAK+R,QAAO,SAACxS,GACjC,OACEA,EAAK4J,aAAa+I,SAASD,EAAKzU,MAAM0S,aACtC3Q,EAAK4S,oBAAoBD,SAASD,EAAKzU,MAAM0S,WAEjD,GAGJ,GAAC,CAAA/I,IAAA,UAAAM,MAED,WAAW,IAAD2K,EAAA,KAKFC,EAHOlS,KAAK0Q,MAAM1Q,KAAKC,UAAU0Q,KAAKtT,MAAMwC,OAG1BV,KAAI,SAACC,GAM3B,OALI6S,EAAK5U,MAAMyS,WAAWiC,SAAS3S,EAAK4J,cACtC5J,EAAK+S,KAAO,EAEZ/S,EAAK+S,KAAO,EAEP/S,CACT,IAGIH,EAAciT,EAASN,QAAO,SAACxS,GAAI,MAAqB,WAAhBA,EAAKgT,MAAmB,IAChEC,EAAeH,EAASN,QAC1B,SAACxS,GAAI,OACc,YAAhBA,EAAKgT,QAAwC,UAAhBhT,EAAKgT,SACnChT,EAAKyK,UAAYoI,EAAK5U,MAAMD,WAAWkV,UAAU,IAI/CC,EAAmB,GAAA7X,QAAAoT,EAAAA,EAAAA,GACpB7O,EAAYE,KAAI,SAACC,GAAI,OAAKA,EAAK4J,YAAY,MAAC8E,EAAAA,EAAAA,GAC5CuE,EAAalT,KAAI,SAACC,GAAI,OAAKA,EAAK4J,YAAY,MAI7CwJ,EAAcN,EAASN,QACzB,SAACxS,GAAI,OAAMmT,EAAoBR,SAAS3S,EAAK4J,aAAa,IAG5D/J,EAAc0R,KAAK8B,cAAcxT,GACjCoT,EAAe1B,KAAK+B,aAAaL,GAGjCpT,EAAc0R,KAAKgC,mBAAmB1T,GACtCoT,EAAe1B,KAAKgC,mBAAmBN,GACvCG,EAAc7B,KAAKgC,mBAAmBH,GAGtC,IAAII,EAAoBjC,KAAKkC,SAC3B5T,EACA0R,KAAKtT,MAAMpC,OACX0V,KAAKtT,MAAMnC,eACX,GAEI4X,EAAuBF,EAAkBhB,QAC7C,SAACxS,GAAI,OAAmB,IAAdA,EAAK+S,IAAU,IAE3BS,EAAoBA,EAAkBhB,QAAO,SAACxS,GAAI,OAAmB,IAAdA,EAAK+S,IAAU,IACtES,EAAiB,GAAAlY,QAAAoT,EAAAA,EAAAA,GAAOgF,IAAoBhF,EAAAA,EAAAA,GAAK8E,IAEjD,IAAMG,EAAgBpC,KAAKkC,SACzBR,EACA1B,KAAKtT,MAAMpC,OACX0V,KAAKtT,MAAMnC,eACX,GAEI8X,EAAoBrC,KAAKkC,SAC7BL,EACA7B,KAAKtT,MAAMpC,OACX0V,KAAKtT,MAAMnC,eACX,GAGFyV,KAAKxE,SAAS,CACZlN,YAAa2T,EACbhD,aAAcmD,EACdlD,iBAAkBmD,GAEtB,GAAC,CAAAhM,IAAA,iBAAAM,MAED,SAAe2L,GACbtC,KAAKxE,SAAS,CAAEnH,eAAgBiO,GAClC,GAAC,CAAAjM,IAAA,gBAAAM,MAED,SAAcN,GACZ2J,KAAKxE,UAAS,SAAC+G,GAAS,MAAM,CAC5BlD,aAAW/K,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACNiO,EAAUlD,aAAW,IAAAmD,EAAAA,EAAAA,GAAA,GACvBnM,GAAOkM,EAAUlD,YAAYhJ,KAEjC,GACH,GAEA,CAAAA,IAAA,eAAAM,MAKA,SAAa+K,GACX,GAA4B,IAAxBA,EAAanT,OAAc,MAAO,GAEtC,IAAMkU,EAAUf,EAAaT,QAAO,SAACxS,GAAI,OAAKA,EAAKC,MAAQ,IAAc,IACnEgU,EAAgB1C,KAAKkC,SAASO,EAAS,OAAQ,QAEjDC,EAAcnU,OAAS,IACzBmU,EAAcrN,KAAKgI,IAAI,EAAGqF,EAAcnU,OAAS,IAAIkK,OAAS,WAC9DiK,EAAcrN,KAAKgI,IAAI,EAAGqF,EAAcnU,OAAS,IAAIkK,OAAS,WAC9DiK,EAAcrN,KAAKgI,IAAI,EAAGqF,EAAcnU,OAAS,IAAIkK,OAAS,WAC9DiK,EAAcrN,KAAKgI,IAAI,EAAGqF,EAAcnU,OAAS,IAAIkK,OAAS,WAC9DiK,EAAcrN,KAAKgI,IAAI,EAAGqF,EAAcnU,OAAS,IAAIkK,OAAS,YAEhE,IAAMkK,EAAWjB,EAAaT,QAAO,SAACxS,GAAI,OAAKA,EAAKC,KAAO,IAAc,IAEzE,MAAM,GAAN3E,QAAAoT,EAAAA,EAAAA,GAAWuF,IAAavF,EAAAA,EAAAA,GAAKwF,GAC/B,GAEA,CAAAtM,IAAA,gBAAAM,MAKA,SAAcrI,GACZ,GAA2B,IAAvBA,EAAYC,OAAc,MAAO,GAErC,IAAI0T,EAAoBjC,KAAKkC,SAAS5T,EAAa,MAAO,QAW1D,OAVA2T,EAAkB,GAAGxJ,OAAS,UAE9BwJ,EAAoBjC,KAAKkC,SAAS5T,EAAa,OAAQ,QACrC,GAAGmK,OAAS,gBAE9BwJ,EAAoBjC,KAAKkC,SAAS5T,EAAa,QAAS,OAAO,GAG/D0R,KAAK4C,wBAAwBtU,GAEtB2T,CACT,GAAC,CAAA5L,IAAA,0BAAAM,MAED,SAAwBrI,GAEtB,IAAMuU,EAAoBvU,EAAY2S,QACpC,SAACxS,GAAI,OAAKA,EAAKuK,aAAe,GAAG,IAS7B8J,EANMD,EAAkBlU,QAAO,SAACoU,EAAaC,GACjD,OAAOD,EAAcE,WAAWD,EAAO/J,MACzC,GAAG,IAEyB4J,EAAkBtU,OAAS,GAGtCyR,KAAKtT,MAAMD,WAAWyW,oBAEvC5U,EAAYE,KAAI,SAACC,GAIf,OAHIA,EAAKwK,MAAQ6J,IACfrU,EAAKgK,OAAS,eAET,CACT,GACF,GAEA,CAAApC,IAAA,WAAAM,MAIA,SAASzH,GAA8D,IAADiU,EAAA,KAAvDxM,EAAKxN,UAAAoF,OAAA,QAAA6U,IAAAja,UAAA,GAAAA,UAAA,GAAG,KAAMka,EAASla,UAAAoF,OAAA,QAAA6U,IAAAja,UAAA,GAAAA,UAAA,GAAG,KAAMma,EAAana,UAAAoF,OAAA,QAAA6U,IAAAja,UAAA,IAAAA,UAAA,GACpDoa,EAAqB,OAAV5M,EAAiBqJ,KAAKtT,MAAMpC,OAASqM,EAClD6M,EAAU,GACd,GAAIxD,KAAKtT,MAAM+W,UAAW,CAExB,IAAMrR,EAAQmR,EACdC,GAAUrG,EAAAA,EAAAA,GAAIjO,GAAMwU,MAAK,SAAC7Q,EAAGC,GAC3B,IAAM6Q,EAAS9Q,EAAER,SAASD,GAAS+Q,EAAKzW,MAAM4F,gBAAgBF,GACxDwR,EAAS9Q,EAAET,SAASD,GAAS+Q,EAAKzW,MAAM4F,gBAAgBF,GAC9D,OAAIuR,IAAWC,EACN/Q,EAAgB,aAAEgR,cAAc/Q,EAAgB,cAElD6Q,EAASC,CAClB,GACF,MACE,GACE,CACE,OACA,MACA,WACA,UACA,SACA,gBACAxC,SAASmC,GAEXC,EAAUtU,EAAKwU,MAAK,SAAC7Q,EAAGC,GAAC,OAAKD,EAAE0Q,GAAUM,cAAc/Q,EAAEyQ,GAAU,SAC/D,GAAiB,mBAAbA,EACTC,EAAUtU,EAAKwU,MACb,SAAC7Q,EAAGC,GAAC,OAAKD,EAAE0Q,GAAU1K,UAAUtK,OAASuE,EAAEyQ,GAAU1K,UAAUtK,MAAM,SAElE,IAAsB,IAAlB+U,EAAwB,CACjC,IACMzQ,EAAI3D,EAAK+R,QAAO,SAACxS,GAAI,OAAKwU,WAAWxU,EAAK+J,KAD1B,CAC8C,IAC9D1F,EAAI5D,EAAK+R,QAAO,SAACxS,GAAI,OAAKwU,WAAWxU,EAAK+J,MAF1B,CAE+C,IAC/DsL,EAAUjR,EAAE6Q,MAAK,SAAC7Q,EAAGC,GAAC,OAAKA,EAAEyQ,GAAY1Q,EAAE0Q,EAAS,IAC1DO,EAAQA,EAAQvV,OAAS,GAAGkK,OAAS,mBACrC+K,EAAO,GAAAzZ,QAAAoT,EAAAA,EAAAA,GAAO2G,IAAO3G,EAAAA,EAAAA,GAAKrK,GAC5B,MACE0Q,EAAUtU,EAAKwU,MAAK,SAAU7Q,EAAGC,GAC/B,OAAID,EAAE0Q,KAAczQ,EAAEyQ,GACb1Q,EAAgB,aAAEgR,cAAc/Q,EAAgB,cAElDD,EAAE0Q,GAAYzQ,EAAEyQ,GAAY,GAAK,CAC1C,IAUJ,MAJoB,UADJ,OAAdF,EAAqBrD,KAAKtT,MAAMnC,cAAgB8Y,IAEhDG,EAAQO,UAGHP,CACT,GAAC,CAAAnN,IAAA,kBAAAM,MAED,SAAgBlI,GAAO,IAADuV,EAAA,KACdC,EAAU,CACd,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA7C,SAAS3S,GACL4U,EACJrD,KAAKtT,MAAMpC,SAAWmE,EAClB,OAC6B,SAA7BuR,KAAKtT,MAAMnC,cACX,MACA,OACNyV,KAAKxE,SACH,CAAElR,OAAQmE,EAAMlE,cAAe8Y,EAAWI,UAAWQ,IACrD,kBAAMD,EAAKzD,SAAS,IAEtB2D,OAAOC,YAAW,WAAO,GAAG,IAC9B,GAAC,CAAA9N,IAAA,aAAAM,MAED,SAAWlI,GACT,MAAO,SACT,GAAC,CAAA4H,IAAA,aAAAM,MAED,SAAW/L,GACT,OAAOoV,KAAKtT,MAAMyS,WAAWiC,SAASxW,GAAWwZ,EAAYC,CAC/D,GAAC,CAAAhO,IAAA,YAAAM,MAwID,WAAa,IAAD2N,EAAA,KACV,OACEzd,EAAAA,GAAAA,KAAA,OAAKF,UAAU,eAAcC,UAC3BC,EAAAA,GAAAA,KAAA0d,EAAAA,EAAA,CACEre,MAAO,CACLM,MAAO,IACPC,OAAQ,GACRmQ,aAAc,EACd4N,WAAY,QAEd9N,SAAU,SAACf,GAAK,OACd2O,EAAK9I,SACH,CAAE4D,WAAYzJ,EAAMrK,OAAOqL,MAAM8N,OAAOC,gBACxC,kBAAMJ,EAAK/D,SAAS,GACrB,EAEHoE,QAAQ9d,EAAAA,GAAAA,KAAC+d,EAAAA,EAAc,OAI/B,GAAC,CAAAvO,IAAA,SAAAM,MAED,WAAU,IAADkO,EAAA,KACPC,EAQI9E,KAAKtT,MAPP4S,EAAOwF,EAAPxF,QAEAD,GADIyF,EAAJ5V,KACW4V,EAAXzF,aACAhL,EAAcyQ,EAAdzQ,eACA/F,EAAWwW,EAAXxW,YACA2Q,EAAY6F,EAAZ7F,aACAC,EAAgB4F,EAAhB5F,iBAGI6F,GACH1F,EAAY2F,SAAW3F,EAAY4F,UAAY5F,EAAY6F,QACxDC,EACJC,IAAQ/F,IAAgB0F,GAAiB1F,EAAY2F,OACjDK,EACJD,IAAQ/F,IAAgB0F,GAAiB1F,EAAY4F,QACjDK,EACJF,IAAQ/F,IAAgB0F,GAAiB1F,EAAY6F,QAEjDpY,EAAkBkT,KAAKtT,MAAMG,UAC/B,CACEoC,SAAU,CACR,CACE6H,MAAO,QACP5H,KAAM8Q,KAAKtT,MAAMG,UACjBtG,MAAM,EACNiB,gBAAiB,mBACjBwP,YAAa,yBACbuO,QAAS,KAIf,CAAC,EAECrR,EACJ8L,KAAKtT,MAAMqP,SAAWiE,KAAKtT,MAAMsP,aAC7B,CACE/M,SAAU,CACR,CACE6H,MAAO,MACP5H,KAAM8Q,KAAKtT,MAAMqP,QACjBvU,gBAAiB,OACjBge,YAAa,GAEf,CACE1O,MAAO,WACP5H,KAAM8Q,KAAKtT,MAAMsP,aACjBxU,gBAAiB,SACjBge,YAAa,KAInB,CAAC,EAEDtY,EAAkB8S,KAAKtT,MAAMG,UAC/B,CACE4Y,OAAQ,CACNC,MAAO,CACL,CACEC,KAAM,SACNzI,SAAU,SACV0I,WAAY,CACV5S,SAAS,EACT6S,YAAa,gBAEfC,MAAO,CACLC,UAAU,EACVC,cAAe,GACf3I,IAAKhI,KAAKgI,IAAGnU,MAARmM,MAAI8H,EAAAA,EAAAA,GAAQ6C,KAAKtT,MAAMG,UAAU2B,KAAI,SAACU,GAAI,OAAKA,EAAK2N,CAAC,MAC1DE,IAAK1H,KAAK0H,IAAG7T,MAARmM,MAAI8H,EAAAA,EAAAA,GAAQ6C,KAAKtT,MAAMG,UAAU2B,KAAI,SAACU,GAAI,OAAKA,EAAK2N,CAAC,MAC1DoJ,SAAU,IACVC,SAAU,SAAUvP,GAClB,OAAOA,CACT,KAINwP,MAAO,CACL,CACEP,WAAY,CACV5S,SAAS,EACT6S,YAAa,oCAMvB,CAAC,EAEC9Y,EAAmBiT,KAAKtT,MAAMG,UAChC,CACE4Y,OAAQ,CACNC,MAAO,CACL,CACEC,KAAM,SACNzI,SAAU,SACV0I,WAAY,CACV5S,SAAS,EACT6S,YAAa,gBAEfC,MAAO,CACLC,UAAU,EACVC,cAAe,GACf3I,IAAKhI,KAAKgI,IAAGnU,MAARmM,MAAI8H,EAAAA,EAAAA,GAAQ6C,KAAKtT,MAAMG,UAAU2B,KAAI,SAACU,GAAI,OAAKA,EAAK2N,CAAC,MAC1DE,IAAK1H,KAAK0H,IAAG7T,MAARmM,MAAI8H,EAAAA,EAAAA,GAAQ6C,KAAKtT,MAAMG,UAAU2B,KAAI,SAACU,GAAI,OAAKA,EAAK2N,CAAC,MAC1DoJ,SAAU,IACVC,SAAU,SAAUvP,GAClB,OAAOA,CACT,KAINwP,MAAO,CACL,CACEP,WAAY,CACV5S,SAAS,EACT6S,YAAa,kCAMvB,CAAC,EAEC5R,EAAqB+L,KAAKtT,MAAMG,UAClC,CACE4Y,OAAQ,CACNC,MAAO,CACL,CACEC,KAAM,SACNzI,SAAU,SACV0I,WAAY,CACV5S,SAAS,EACT6S,YAAa,gBAEfC,MAAO,CACLC,UAAU,EACVC,cAAe,GACf3I,IAAK2C,KAAKtT,MAAMwP,KAChBa,IAAKiD,KAAKtT,MAAMyP,KAChB8J,SAAU,IACVC,SAAU,SAAUvP,GAClB,OAAOA,CACT,KAINwP,MAAO,CACL,CACEP,WAAY,CACV5S,SAAS,EACT6S,YAAa,YAEfC,MAAO,CACLzI,IAAK,EACLN,IAAK,SAMf,CAAC,EAEC/I,EAAiBgM,KAAKtT,MAAMG,UAC9B,CACE4Y,OAAQ,CACNC,MAAO,CACL,CACEC,KAAM,SACNzI,SAAU,SACV0I,WAAY,CACV5S,SAAS,EACT6S,YAAa,gBAEfC,MAAO,CACLI,SAAU,SAAUvP,EAAO5D,EAAOqT,GAChC,OAAOzP,CACT,KAINwP,MAAO,CACL,CACEP,WAAY,CACV5S,SAAS,EACT6S,YAAa,qBAMvB,CAAC,EAEC9R,EAAiBiM,KAAKtT,MAAMG,UAC9B,CACE4Y,OAAQ,CACNC,MAAO,CACL,CACEC,KAAM,SACNzI,SAAU,SACV0I,WAAY,CACV5S,SAAS,EACT6S,YAAa,gBAEfC,MAAO,CACLI,SAAU,SAAUvP,EAAO5D,EAAOqT,GAChC,OAAOzP,CACT,KAINwP,MAAO,CACL,CACEP,WAAY,CACV5S,SAAS,EACT6S,YAAa,8BAMvB,CAAC,EAEC/R,EAAckM,KAAKtT,MAAMG,UAC3B,CACE4Y,OAAQ,CACNC,MAAO,CACL,CACEC,KAAM,SACNzI,SAAU,SACV0I,WAAY,CACV5S,SAAS,EACT6S,YAAa,gBAEfC,MAAO,CACLC,UAAU,EACVC,cAAe,GACf3I,IAAKhI,KAAKgI,IAAGnU,MAARmM,MAAI8H,EAAAA,EAAAA,GAAQ6C,KAAKtT,MAAMG,UAAU2B,KAAI,SAACU,GAAI,OAAKA,EAAK2N,CAAC,MAC1DoJ,SAAU,IACVC,SAAU,SAAUvP,EAAO5D,EAAOqT,GAChC,OAAOzP,CACT,KAINwP,MAAO,CACL,CACEP,WAAY,CACV5S,SAAS,EACT6S,YAAa,4BAMvB,CAAC,EAEL,OACE5f,EAAAA,GAAAA,MAAAe,EAAAA,EAAA,CAAAJ,SAAA,EACEX,EAAAA,GAAAA,MAACc,GAAM,CACLb,MAAO,CACLqB,MAAO,QACPD,SAAU,GACVG,WAAY,IACZE,SAAU,KACVlB,OAAQ,IACRuM,QAAS,OACTmE,WAAY,UACZvQ,SAAA,EAEFX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,cAAaC,SAAA,EAC1BC,EAAAA,GAAAA,KAAA,OACE8E,IAAI,IACJnB,IAAK6b,GAAAA,EACLngB,MAAO,CAAEM,MAAO,GAAIC,OAAQ,GAAI6f,OAAQ,uBAE1Czf,EAAAA,GAAAA,KAAA,QAAAD,SAAM,yBAERX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,eAAcC,SAAA,EAI3BC,EAAAA,GAAAA,KAAA,OACEF,UAAS,eAAAoD,OACPsV,EAAY2F,OAAS,sBAAwB,MAE/CtZ,QAAS,kBAAMmZ,EAAK0B,cAAc,SAAS,EAAC3f,UAE5CC,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CACNtB,QAAQ,eACRD,MAAO,YACPwB,QAAQ,QAAOxE,UAEfC,EAAAA,GAAAA,KAAA,OAAK2D,IAAKgc,GAAAA,SAGd3f,EAAAA,GAAAA,KAAA,OACEF,UAAS,eAAAoD,OACPsV,EAAY4F,QAAU,sBAAwB,MAEhDvZ,QAAS,kBAAMmZ,EAAK0B,cAAc,UAAU,EAAC3f,UAE7CC,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CACNtB,QAAQ,gBACRD,MAAO,YACPwB,QAAQ,QAAOxE,UAEfC,EAAAA,GAAAA,KAAA,OAAK2D,IAAKic,GAAAA,SAGd5f,EAAAA,GAAAA,KAAA,OACEF,UAAS,eAAAoD,OACPsV,EAAY6F,QAAU,sBAAwB,MAEhDxZ,QAAS,kBAAMmZ,EAAK0B,cAAc,UAAU,EAAC3f,UAE7CC,EAAAA,GAAAA,KAACsE,EAAAA,EAAO,CACNtB,QAAQ,eACRD,MAAO,YACPwB,QAAQ,QAAOxE,UAEfC,EAAAA,GAAAA,KAAA,OAAK2D,IAAKkc,GAAAA,eAKlBzgB,EAAAA,GAAAA,MAACiB,GAAO,CAAChB,MAAO,CAAEmB,QAAS,GAAIG,gBAAiB,SAAUZ,SAAA,CACvD0Y,IACCzY,EAAAA,GAAAA,KAAA,OAAKF,UAAU,UAASC,UACtBC,EAAAA,GAAAA,KAAA,OAAK2D,IAAKmc,GAAahgB,UAAU,oBAInC2Y,IACArZ,EAAAA,GAAAA,MAAA,OAAKU,UAAU,yBAAwBC,SAAA,EACrCC,EAAAA,GAAAA,KAAA+f,EAAAA,EAAA,CAAYC,UAAU,IAAGjgB,UACvBC,EAAAA,GAAAA,KAAA+f,EAAAA,EAAYE,KAAI,CAAAlgB,SAAC,iBAGnBC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,wBAAuBC,UACpCX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,gBAAeC,SAAA,EAC5BC,EAAAA,GAAAA,KAAC+E,GAAU,CACTc,MAAOsT,KAAKtT,MACZD,WAAYuT,KAAKtT,MAAMD,WACvBE,kBAAmBqT,KAAKtT,MAAMC,kBAC9BC,qBAAsBoT,KAAKpT,qBAC3BE,gBAAiBA,EACjBC,iBAAkBA,EAClBG,gBAAiBA,EACjBF,wBAAyBgT,KAAKhT,wBAC9BC,wBAAyB+S,KAAK/S,2BAEhCpG,EAAAA,GAAAA,KAACgJ,GAAa,CAACpD,WAAYuT,KAAKtT,MAAMD,kBAIzC0Y,IACClf,EAAAA,GAAAA,MAAA8H,GAAAA,SAAA,CAAAnH,SAAA,EACEX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,cAAaC,SAAA,EAC1BC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,WAAUC,UACvBC,EAAAA,GAAAA,KAACkgB,EAAAA,GAAI,CAACC,GAAIC,EAAAA,EAAaC,iBAAiBtgB,UACtCC,EAAAA,GAAAA,KAAAsgB,EAAAA,EAAA,CAAQxB,KAAK,UAAUhf,UAAU,YAAWC,SAAC,qBAKhDoZ,KAAKoH,aAENvgB,EAAAA,GAAAA,KAACwgB,GAAAA,EAAa,CACZC,cAAejT,EACfkT,eAAgBvH,KAAKwH,eAAehI,KAAKQ,WAI5C1R,EAAYC,OAAS,IACpB1H,EAAAA,GAAAA,KAACwM,GAAS,CACRgB,eAAgBA,EAChBtJ,WAAYiV,KAAKjV,WAAWyU,KAAKQ,MACjClV,SAAUkV,KAAKlV,SAAS0U,KAAKQ,MAC7BzM,SAAUjF,EACVkF,gBAAiBwM,KAAKxM,gBAAgBgM,KAAKQ,MAC3CvM,gBAAiBuM,KAAKvM,gBACtBC,mBAAoBsM,KAAKtM,mBACzBC,mBAAoBqM,KAAKrM,mBACzBC,WAAYoM,KAAKpM,WAAW4L,KAAKQ,MACjC1N,gBAAiB0N,KAAKtT,MAAM4F,gBAC5BuB,QAAQ,EACRvJ,OAAQ0V,KAAKtT,MAAMpC,OACnBC,cAAeyV,KAAKtT,MAAMnC,cAC1BuC,gBAAiBA,EACjBgH,YAAaA,EACbC,eAAgBA,EAChBC,eAAgBA,EAChBhH,wBAAyBgT,KAAKhT,wBAC9BmH,mBAAoB6L,KAAK7L,mBACzBD,2BAA4BA,EAC5BD,mBAAoBA,IAGA,IAAvB3F,EAAYC,SACX1H,EAAAA,GAAAA,KAAA,OAAKF,UAAU,UAASC,UACtBC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,mBAAkBC,SAAC,iCAKtCC,EAAAA,GAAAA,KAAA,YAIHwe,IACCpf,EAAAA,GAAAA,MAAA8H,GAAAA,SAAA,CAAAnH,SAAA,EACEX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,cAAaC,SAAA,EAC1BC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,WAAUC,UACvBC,EAAAA,GAAAA,KAACkgB,EAAAA,GAAI,CAACC,GAAIC,EAAAA,EAAaQ,kBAAkB7gB,UACvCC,EAAAA,GAAAA,KAAAsgB,EAAAA,EAAA,CAAQxB,KAAK,UAAUhf,UAAU,YAAWC,SAAC,uBAM/Cue,IACAlf,EAAAA,GAAAA,MAAA8H,GAAAA,SAAA,CAAAnH,SAAA,CACGoZ,KAAKoH,aACNvgB,EAAAA,GAAAA,KAACwgB,GAAAA,EAAa,CACZC,cAAejT,EACfkT,eAAgBvH,KAAKwH,eAAehI,KAAKQ,cAMhDf,EAAa1Q,OAAS,IACrB1H,EAAAA,GAAAA,KAACwM,GAAS,CACRgB,eAAgBA,EAChBtJ,WAAYiV,KAAKjV,WAAWyU,KAAKQ,MACjClV,SAAUkV,KAAKlV,SAAS0U,KAAKQ,MAC7BzM,SAAU0L,EACVzL,gBAAiBwM,KAAKxM,gBAAgBgM,KAAKQ,MAC3CvM,gBAAiBuM,KAAKvM,gBACtBC,mBAAoBsM,KAAKtM,mBACzBC,mBAAoBqM,KAAKrM,mBACzBC,WAAYoM,KAAKpM,WAAW4L,KAAKQ,MACjC1N,gBAAiB0N,KAAKtT,MAAM4F,gBAC5BuB,QAAQ,EACRvJ,OAAQ0V,KAAKtT,MAAMpC,OACnBC,cAAeyV,KAAKtT,MAAMnC,cAC1BuC,gBAAiBA,EACjBgH,YAAaA,EACbC,eAAgBA,EAChBC,eAAgBA,EAChBhH,wBAAyBgT,KAAKhT,wBAC9BmH,mBAAoB6L,KAAK7L,mBACzBD,2BAA4BA,EAC5BD,mBAAoBA,IAGC,IAAxBgL,EAAa1Q,SACZ1H,EAAAA,GAAAA,KAAA,OAAKF,UAAU,UAASC,UACtBC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,mBAAkBC,SAAC,kCAKtCC,EAAAA,GAAAA,KAAA,YAGHye,IACCrf,EAAAA,GAAAA,MAAA8H,GAAAA,SAAA,CAAAnH,SAAA,EACEX,EAAAA,GAAAA,MAAA,OAAKU,UAAU,cAAaC,SAAA,EAC1BC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,WAAUC,UACvBC,EAAAA,GAAAA,KAACkgB,EAAAA,GAAI,CAACC,GAAIC,EAAAA,EAAaS,gBAAgB9gB,UACrCC,EAAAA,GAAAA,KAAAsgB,EAAAA,EAAA,CAAQxB,KAAK,UAAUhf,UAAU,YAAWC,SAAC,qBAM/Cue,IAAeE,IACfpf,EAAAA,GAAAA,MAAA8H,GAAAA,SAAA,CAAAnH,SAAA,CACGoZ,KAAKoH,aACNvgB,EAAAA,GAAAA,KAACwgB,GAAAA,EAAa,CACZC,cAAejT,EACfkT,eAAgBvH,KAAKwH,eAAehI,KAAKQ,cAMhDd,EAAiB3Q,OAAS,IACzB1H,EAAAA,GAAAA,KAACwM,GAAS,CACRgB,eAAgBA,EAChBtJ,WAAYiV,KAAKjV,WAAWyU,KAAKQ,MACjClV,SAAUkV,KAAKlV,SAAS0U,KAAKQ,MAC7BzM,SAAU2L,EACV1L,gBAAiBwM,KAAKxM,gBAAgBgM,KAAKQ,MAC3CvM,gBAAiBuM,KAAKvM,gBACtBC,mBAAoBsM,KAAKtM,mBACzBC,mBAAoBqM,KAAKrM,mBACzBC,WAAYoM,KAAKpM,WAAW4L,KAAKQ,MACjC1N,gBAAiB0N,KAAKtT,MAAM4F,gBAC5BuB,QAAQ,EACRvJ,OAAQ0V,KAAKtT,MAAMpC,OACnBC,cAAeyV,KAAKtT,MAAMnC,cAC1BuC,gBAAiBA,EACjBgH,YAAaA,EACbC,eAAgBA,EAChBC,eAAgBA,EAChBhH,wBAAyBgT,KAAKhT,wBAC9BmH,mBAAoB6L,KAAK7L,mBACzBD,2BAA4BA,EAC5BD,mBAAoBA,IAGK,IAA5BiL,EAAiB3Q,SAChB1H,EAAAA,GAAAA,KAAA,OAAKF,UAAU,UAASC,UACtBC,EAAAA,GAAAA,KAAA,OAAKF,UAAU,mBAAkBC,SAAC,yCAUhDX,EAAAA,GAAAA,MAACgB,GAAM,CAAAL,SAAA,EACLC,EAAAA,GAAAA,KAAA,KACEwE,KAAK,wCACLC,OAAO,SACP3E,UAAU,OAAMC,UAEhBC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKmd,GAAAA,EAAYhhB,UAAU,2BAE1CE,EAAAA,GAAAA,KAAA,KACEwE,KAAK,kCACLC,OAAO,SACP3E,UAAU,OAAMC,UAEhBC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKod,GAAAA,EAAajhB,UAAU,2BAE3CV,EAAAA,GAAAA,MAAA,OAAKU,UAAU,eAAcC,SAAA,EAC3BC,EAAAA,GAAAA,KAAA,QAAAD,SAAM,gBACNC,EAAAA,GAAAA,KAAA,OAAK8E,IAAI,IAAInB,IAAKqd,GAAAA,EAAalhB,UAAU,gCAKnD,KAAC8T,CAAA,CAjkCD,CAC2BqN,EAAAA,U,wBCvwD7B,IAAIC,EAAWC,EAAQ,OACnBC,EAASD,EAAQ,OACjBE,EAAcF,EAAQ,OACtBG,EAAUH,EAAQ,OAClBI,EAAcJ,EAAQ,OACtBK,EAAWL,EAAQ,MACnBM,EAAcN,EAAQ,OACtBO,EAAeP,EAAQ,OAUvBQ,EAHchM,OAAOiM,UAGQD,eA2DjCE,EAAOC,QAxBP,SAAiBhS,GACf,GAAa,MAATA,EACF,OAAO,EAET,GAAIyR,EAAYzR,KACXwR,EAAQxR,IAA0B,iBAATA,GAA4C,mBAAhBA,EAAMiS,QAC1DP,EAAS1R,IAAU4R,EAAa5R,IAAUuR,EAAYvR,IAC1D,OAAQA,EAAMpI,OAEhB,IAAIsa,EAAMZ,EAAOtR,GACjB,GApDW,gBAoDPkS,GAnDO,gBAmDUA,EACnB,OAAQlS,EAAMmS,KAEhB,GAAIR,EAAY3R,GACd,OAAQoR,EAASpR,GAAOpI,OAE1B,IAAK,IAAI8H,KAAOM,EACd,GAAI6R,EAAejN,KAAK5E,EAAON,GAC7B,OAAO,EAGX,OAAO,CACT,C","sources":["containers/A_monitor/monitorpage.js","../node_modules/lodash/isEmpty.js"],"sourcesContent":["import React, { Component, useState } from \"react\";\r\nimport isEmpty from \"lodash/isEmpty\";\r\nimport { UpOutlined, DownOutlined, DotChartOutlined } from \"@ant-design/icons\";\r\nimport { Line } from \"react-chartjs-2\";\r\nimport CustomLineChart from \"./CustomLineChart\";\r\nimport CustomScatterChart from \"./CustomScatterChart\";\r\n//import LayoutContentWrapper from '@iso/components/utility/layoutWrapper';\r\n//import LayoutContent from '@iso/components/utility/layoutContent';\r\nimport Modals from \"@iso/components/Feedback/Modal\";\r\nimport Popover from \"@iso/components/uielements/popover\";\r\nimport { getData, setCookie, getCookie } from \"CommonFunctions\";\r\n//import { someFunc } from './monitor_functions'\r\n//import Spin from '@iso/ui/Antd/Spin/Spin';\r\n// import Input from '@iso/components/uielements/input';\r\nimport { ModalContent } from \"../Feedback/Modal/Modal.styles\";\r\nimport { Layout, Button, Input, Breadcrumb, Select } from \"antd\";\r\nimport \"./styles.css\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { PUBLIC_ROUTE } from \"../../route.constants\";\r\nimport {\r\n SearchOutlined,\r\n LeftOutlined,\r\n RightOutlined,\r\n HistoryOutlined,\r\n} from \"@ant-design/icons\";\r\n//import { retiringVault } from './data.js' //https://thornode.ninerealms.com/thorchain/vaults/asgard\r\n\r\nimport heartBlank from \"@iso/assets/images/heart-blank.png\";\r\nimport heartFull from \"@iso/assets/images/heart-full.png\";\r\n\r\nimport imageDO from \"@iso/assets/images/do.png\";\r\nimport imageAWS from \"@iso/assets/images/aws.png\";\r\nimport imageGCP from \"@iso/assets/images/gcp.png\";\r\nimport imageAZURE from \"@iso/assets/images/azure.png\";\r\nimport imageHETZNER from \"@iso/assets/images/hetzner.png\";\r\nimport imageVULTR from \"@iso/assets/images/vultr.png\";\r\nimport imageLeaseweb from \"@iso/assets/images/leaseweb.png\";\r\nimport imageDatacamp from \"@iso/assets/images/datacamp.png\";\r\nimport imageComcast from \"@iso/assets/images/comcast.png\";\r\nimport imageChoopa from \"@iso/assets/images/choopa.png\";\r\nimport imageChartercoms from \"@iso/assets/images/chartercoms.png\";\r\nimport imageATandT from \"@iso/assets/images/atandt.png\";\r\nimport imageZenlayer from \"@iso/assets/images/zenlayer.png\";\r\nimport imageAljeel from \"@iso/assets/images/Aljeel.png\";\r\nimport imageHostinger from \"@iso/assets/images/Hostinger.png\";\r\n\r\nimport binance from \"@iso/assets/images/binance.png\";\r\nimport eth from \"@iso/assets/images/eth.png\";\r\nimport bitcoin from \"@iso/assets/images/bitcoin.png\";\r\nimport litecoin from \"@iso/assets/images/litecoin.png\";\r\nimport bitcoincash from \"@iso/assets/images/bitcoincash.png\";\r\nimport dogecoin from \"@iso/assets/images/dogecoin.png\";\r\n//import luna from '@iso/assets/images/luna.png';\r\nimport gaia from \"@iso/assets/images/atom.png\";\r\nimport thornode from \"@iso/assets/images/thornode.svg\";\r\nimport avax from \"@iso/assets/images/avax.png\";\r\nimport bsc from \"@iso/assets/images/bsc.png\";\r\n\r\nimport blockIcon from \"@iso/assets/images/overview/block_icon.svg\";\r\nimport highTradingIcon from \"@iso/assets/images/overview/24high_trading.svg\";\r\nimport lowTradingIcon from \"@iso/assets/images/overview/24low_trading.svg\";\r\nimport bondIcon from \"@iso/assets/images/overview/Bond_icon.svg\";\r\nimport chartLineIcon from \"@iso/assets/images/overview/chartLineIcon.svg\";\r\nimport churnsIcon from \"@iso/assets/images/overview/churns_icon.svg\";\r\nimport marcketCapIcon from \"@iso/assets/images/overview/marcket_Cap.svg\";\r\nimport mcapRankIcon from \"@iso/assets/images/overview/mcap_rank.svg\";\r\nimport runeUsdtIcon from \"@iso/assets/images/overview/rune_usdt.svg\";\r\nimport timeIcon from \"@iso/assets/images/overview/time_icon.svg\";\r\nimport totalSupplyIcon from \"@iso/assets/images/overview/total_supply.svg\";\r\nimport verticalTopIcon from \"@iso/assets/images/overview/vertical-align-top.svg\";\r\nimport filterIcon from \"@iso/assets/images/overview/filter.svg\";\r\nimport loadingIcon from \"@iso/assets/images/overview/loading.png\";\r\nimport githubIcon from \"@iso/assets/images/overview/github_link_icon.svg\";\r\nimport twitterIcon from \"@iso/assets/images/overview/twitter_link_icon.svg\";\r\nimport liquifyLogo from \"@iso/assets/images/overview/liquify_logo.svg\";\r\n\r\nimport threeDotsIcon from \"@iso/assets/images/overview/dots_three_circle.svg\";\r\nimport powerIcon from \"@iso/assets/images/overview/power.svg\";\r\nimport activeIcon from \"@iso/assets/images/overview/active_icon.svg\";\r\nimport arrowDownIcon from \"@iso/assets/images/overview/arrow-down.svg\";\r\n\r\nimport VisibleColumn from \"@iso/components/VisibleColumn/VisibleColumn\";\r\n\r\nconst leaveIcon = (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst { Header, Footer, Content } = Layout;\r\n\r\nconst headerStyle = {\r\n cursor: \"pointer\",\r\n padding: \"12px 15px\",\r\n fontSize: 15,\r\n color: \"#ffffff\",\r\n backgroundColor: \"rgba(24, 34, 51, 0.4)\",\r\n height: 55,\r\n fontWeight: 600,\r\n};\r\nconst tdStyle = {\r\n minWidth: 60,\r\n textAlign: \"right\",\r\n fontSize: 14,\r\n padding: \"10px 15px\",\r\n};\r\nconst trStyle = { height: 45 };\r\nconst iconStyle = {\r\n minWidth: 25,\r\n padding: 5,\r\n paddingLeft: 10,\r\n paddingRight: 10,\r\n};\r\n\r\nasync function copyToClipWithPopup(msg, ip) {\r\n copyToClipboard(ip);\r\n popUpModal(msg, ip);\r\n}\r\n\r\nconst copyToClipboard = (str) => {\r\n if (navigator && navigator.clipboard && navigator.clipboard.writeText)\r\n return navigator.clipboard.writeText(str);\r\n return Promise.reject(\"The Clipboard API is not available.\");\r\n};\r\n\r\nfunction popUpModal(msg, ip) {\r\n Modals.info({\r\n title:

    Success

    ,\r\n content: (\r\n \r\n

    \r\n {`${msg} `} {`${ip}`}\r\n

    \r\n
    \r\n ),\r\n onOk() {},\r\n okText: \"OK\",\r\n cancelText: \"Cancel\",\r\n className: \"feedback-modal\",\r\n });\r\n}\r\n\r\nconst SortIcon = ({ column, sortBy, sortDirection }) => {\r\n if (sortBy === column) {\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nconst Icons = ({ address, ip_address, addToFav, whichHeart }) => {\r\n const firstURL = `https://thornode.ninerealms.com/thorchain/node/${address}`;\r\n const secondURL = `https://viewblock.io/thorchain/address/${address}`;\r\n return (\r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n copyToClipWithPopup(\"IP Copied to clipboard:\", ip_address)\r\n }\r\n >\r\n {/* */}\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n\r\n addToFav(address)}\r\n src={whichHeart(address)}\r\n style={{\r\n cursor: \"pointer\",\r\n marginLeft: 5,\r\n marginTop: 2,\r\n width: 15,\r\n height: 15,\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nconst GlobalData = ({\r\n globalData,\r\n animateBlockCount,\r\n state,\r\n chartData,\r\n handleClickTotalBond,\r\n chartDataConfig,\r\n totalBondOptions,\r\n handlePopoverVisibility,\r\n handleMaxEffectiveStake,\r\n maxStakeOptions,\r\n}) => {\r\n let timeToDisplay = \"\";\r\n let msgTitle = \"\";\r\n if (globalData?.churnTry && globalData?.retiring === \"false\") {\r\n msgTitle = \"(CHURN) RETRY IN\";\r\n timeToDisplay = `${globalData?.timeUntilRetry?.days}d ${globalData?.timeUntilRetry?.hours}h ${globalData?.timeUntilRetry?.minutes}m`;\r\n } else if (globalData?.retiring === \"true\") {\r\n msgTitle = \"(CHURN) CURRENTLY CHURNING\";\r\n timeToDisplay = \"Churning\";\r\n } else {\r\n msgTitle = \"(CHURN) TIME UNTIL\";\r\n timeToDisplay = `${globalData?.timeUntilChurn?.days}d ${globalData?.timeUntilChurn?.hours}h ${globalData?.timeUntilChurn?.minutes}m`;\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n \"#\"\r\n
    \r\n
    CURRENT BLOCK
    \r\n
    \r\n {parseInt(globalData.maxHeight).toLocaleString()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    {msgTitle}
    \r\n
    {timeToDisplay}
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    TOTAL BONDED VALUE
    \r\n
    \r\n ᚱ\r\n {state.activeNodes.length > 0\r\n ? parseInt(\r\n state.activeNodes\r\n .map((item) => item.bond)\r\n .reduce((prev, next) => prev + next) / 100000000\r\n ).toLocaleString()\r\n : \"0\"}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    MARKET CAP
    \r\n
    \r\n ${globalData?.coingecko?.market_cap?.toLocaleString()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    24 HR VOLUME
    \r\n
    \r\n ${globalData?.coingecko?.total_volume?.toLocaleString()}\r\n
    \r\n
    \r\n
    \r\n 0 ? (\r\n \r\n ) : (\r\n
    No data available
    \r\n )\r\n }\r\n title=\"Max Effective Stake Over Time\"\r\n trigger=\"click\"\r\n overlayClassName=\"my-custom-popover\"\r\n onVisibleChange={(visible) => handlePopoverVisibility(visible)}\r\n >\r\n \r\n \"#\"\r\n
    \r\n
    MAX EFFECTIVE BOND
    \r\n
    \r\n ᚱ\r\n {parseInt(\r\n globalData.maxEffectiveStake / 100000000\r\n ).toLocaleString()}\r\n
    \r\n
    \r\n \r\n \r\n 0 ? (\r\n \r\n ) : (\r\n
    No data available
    \r\n )\r\n }\r\n title=\"Total Bond Over Time\"\r\n trigger=\"click\"\r\n overlayClassName=\"my-custom-popover\"\r\n onVisibleChange={(visible) => handlePopoverVisibility(visible)}\r\n >\r\n \r\n \"#\"\r\n
    \r\n
    \r\n TOTAL BOND OVER TIME\r\n
    \r\n
    CLICK HERE
    \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst CoinGeckoData = ({ globalData }) => {\r\n return (\r\n <>\r\n
    \r\n \"#\"\r\n
    \r\n
    PRICE
    \r\n
    \r\n ${globalData?.coingecko?.current_price?.toLocaleString()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    24 HR HIGH
    \r\n
    \r\n ${globalData?.coingecko?.high_24h}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    24 HR LOW
    \r\n
    \r\n ${globalData?.coingecko?.low_24h}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    MARKET CAP RANK
    \r\n
    \r\n {globalData?.coingecko?.market_cap_rank}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"#\"\r\n
    \r\n
    TOTAL SUPPLY
    \r\n
    \r\n ᚱ{globalData?.coingecko?.total_supply?.toLocaleString()}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nconst ReturnIspImage = ({ isp }) => {\r\n const style = { width: 25, height: 25 };\r\n\r\n if (\r\n isp === \"Amazon.com, Inc.\" ||\r\n isp === \"Amazon Technologies Inc.\" ||\r\n isp === \"Amazon.com\"\r\n ) {\r\n return \"#\";\r\n }\r\n if (isp === \"DigitalOcean, LLC\" || isp === \"DigitalOcean\") {\r\n return \"#\";\r\n }\r\n if (isp === \"Google LLC\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Microsoft Corporation\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Hetzner Online GmbH\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"The Constant Company\" || isp === \"The Constant Company, LLC\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Leaseweb UK Limited\" || isp === \"Leaseweb USA, Inc.\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Datacamp Limited\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Comcast Cable Communications, LLC\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Choopa\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Charter Communications Inc\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"AT&T Services, Inc.\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Zenlayer Inc\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Aljeel Aljadeed For Technology\") {\r\n return \"#\";\r\n }\r\n\r\n if (isp === \"Hostinger International Limited\") {\r\n return \"#\";\r\n }\r\n\r\n return \"-\";\r\n};\r\n\r\nconst ChainTD = ({ chain, obchains, maxChainHeights }) => {\r\n const delta = obchains[chain] - maxChainHeights[chain];\r\n return (\r\n \r\n {delta === 0 ? \"OK\" : delta.toString()}\r\n
    {item.rpc === 'true' ? '*' : 'BAD'}\r\n {item.forced_to_leave === 1 || item.requested_to_leave === 1\r\n ? \"yes\"\r\n : \"-\"}\r\n
    \r\n
    \r\n
    \r\n
      \r\n \r\n \r\n \r\n {renderPageNumbers}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nlet timer = null;\r\n\r\nconst defaulColumns = {\r\n nodes: true,\r\n age: true,\r\n action: true,\r\n isp: true,\r\n bond: true,\r\n providers: true,\r\n location: true,\r\n leave: true,\r\n rewards: true,\r\n apy: true,\r\n slashes: true,\r\n score: true,\r\n version: true,\r\n rpc: true,\r\n bfr: true,\r\n BTC: true,\r\n BNB: true,\r\n ETH: true,\r\n LTC: true,\r\n BCH: true,\r\n DOGE: true,\r\n GAIA: true,\r\n AVAX: true,\r\n BSC: true,\r\n};\r\nexport default class extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isPopoverOpen: false,\r\n chartData: [],\r\n data: [],\r\n globalData: [],\r\n sortBy: \"bond\",\r\n sortDirection: \"desc\",\r\n activeNodes: [],\r\n standByNodes: [],\r\n whitelistedNodes: [],\r\n animateBlockCount: false,\r\n myFavNodes: [],\r\n searchTerm: \"\",\r\n visibleColumns: defaulColumns,\r\n nodesFilter: {},\r\n loading: true,\r\n sortByChain: null,\r\n minX: null,\r\n maxX: null,\r\n };\r\n this.clickSortHeader = this.clickSortHeader.bind(this);\r\n this.handleClickRewards = this.handleClickRewards.bind(this);\r\n this.handleClickSlashes = this.handleClickSlashes.bind(this);\r\n this.handleClickBond = this.handleClickBond.bind(this);\r\n this.handleClickTotalBond = this.handleClickTotalBond.bind(this);\r\n this.handleNodePosition = this.handleNodePosition.bind(this);\r\n }\r\n\r\n handlePopoverVisibility = (visible) => {\r\n this.setState({ isPopoverOpen: visible });\r\n };\r\n\r\n async componentWillMount() {\r\n const myFavNodes = getCookie(\"myFavNodes\");\r\n\r\n const tmp = myFavNodes.length > 0 ? JSON.parse(myFavNodes) : [];\r\n\r\n this.setState({ myFavNodes: tmp });\r\n\r\n this.refreshData();\r\n }\r\n\r\n async refreshData() {\r\n if (this.state.isPopoverOpen) {\r\n return;\r\n }\r\n const data = await getData();\r\n\r\n if (this.state.loading) {\r\n this.setState({ loading: false });\r\n }\r\n\r\n if (!process.env.NODE_ENV || process.env.NODE_ENV === \"development\") {\r\n // console.log('DEV ONLY: Refresh Data Results: ', data)\r\n }\r\n\r\n this.setState(\r\n {\r\n data: data.data,\r\n globalData: data.globalData,\r\n maxChainHeights: data.maxChainHeights,\r\n animateBlockCount: false,\r\n },\r\n () => this.setData()\r\n ); //Change animateBlockCount to true here for animation\r\n }\r\n\r\n componentDidMount() {\r\n timer = setInterval(() => {\r\n this.setState({ animateBlockCount: false }, () => this.refreshData());\r\n //this.refreshData()\r\n }, 6000);\r\n }\r\n\r\n componentWillUnmount() {\r\n clearInterval(timer);\r\n }\r\n\r\n addToFav(address) {\r\n //setCookie('myFavNodes', '')\r\n //return\r\n\r\n //Below works to add, but need to check if already exists, and if so remove\r\n\r\n const myFavNodes = getCookie(\"myFavNodes\"); //JSON.parse(\r\n\r\n if (myFavNodes.length === 0) {\r\n //in here no current fav nodes\r\n const singleAddress = JSON.stringify([address]);\r\n setCookie(\"myFavNodes\", singleAddress);\r\n this.setState({ myFavNodes: singleAddress }, () => this.setData());\r\n } else {\r\n //If we already have some fav nodes\r\n const newFaveNodes = JSON.parse(myFavNodes);\r\n\r\n //Need to check if already exists\r\n if (newFaveNodes.indexOf(address) > -1) {\r\n //In the array!\r\n\r\n const newArrayWithRemove = newFaveNodes.filter(\r\n (item) => item !== address\r\n );\r\n\r\n const newFaveNodesNew = JSON.stringify(newArrayWithRemove);\r\n this.setState({ myFavNodes: newArrayWithRemove }, () => this.setData());\r\n setCookie(\"myFavNodes\", newFaveNodesNew);\r\n } else {\r\n //Not in the array\r\n newFaveNodes[newFaveNodes.length] = address;\r\n\r\n const newFaveNodesNew = JSON.stringify(newFaveNodes);\r\n\r\n this.setState({ myFavNodes: newFaveNodes }, () => this.setData());\r\n setCookie(\"myFavNodes\", newFaveNodesNew);\r\n }\r\n }\r\n }\r\n\r\n returnSearchedData(data) {\r\n if (this.state.searchTerm === \"\") {\r\n return data;\r\n } else {\r\n const filteredNodes = data.filter((item) => {\r\n return (\r\n item.node_address.includes(this.state.searchTerm) ||\r\n item.bondProvidersString.includes(this.state.searchTerm)\r\n );\r\n });\r\n return filteredNodes;\r\n }\r\n }\r\n\r\n setData() {\r\n // Grab our state so we can mutate it\r\n let myData = JSON.parse(JSON.stringify(this.state.data));\r\n\r\n // Add faves to the data, then we can sort by then below\r\n const newItems = myData.map((item) => {\r\n if (this.state.myFavNodes.includes(item.node_address)) {\r\n item.fave = 1;\r\n } else {\r\n item.fave = 0;\r\n }\r\n return item;\r\n });\r\n\r\n // Filter for our three tables\r\n let activeNodes = newItems.filter((item) => item.status === \"Active\");\r\n let standbyNodes = newItems.filter(\r\n (item) =>\r\n (item.status === \"Standby\" || item.status === \"Ready\") &&\r\n item.version === this.state.globalData.maxVersion\r\n );\r\n\r\n // Create an array of all nodes that are active and standby\r\n const active_standy_nodes = [\r\n ...activeNodes.map((item) => item.node_address),\r\n ...standbyNodes.map((item) => item.node_address),\r\n ];\r\n\r\n // White listed are all other nodes which are not active or on standby\r\n let whitelisted = newItems.filter(\r\n (item) => !active_standy_nodes.includes(item.node_address)\r\n );\r\n\r\n activeNodes = this.findChurnOuts(activeNodes); // Add in the actions for churning\r\n standbyNodes = this.findChurnIns(standbyNodes); // Add in the actions for nodes churning in\r\n\r\n // Filter here if any searchTerm from the search bar\r\n activeNodes = this.returnSearchedData(activeNodes);\r\n standbyNodes = this.returnSearchedData(standbyNodes);\r\n whitelisted = this.returnSearchedData(whitelisted);\r\n\r\n // Sort and add our favs to the top\r\n let activeNodesSorted = this.sortData(\r\n activeNodes,\r\n this.state.sortBy,\r\n this.state.sortDirection,\r\n false\r\n );\r\n const favActiveNodesSorted = activeNodesSorted.filter(\r\n (item) => item.fave === 1\r\n ); // Get our favourites\r\n activeNodesSorted = activeNodesSorted.filter((item) => item.fave === 0); // Get our non favourites\r\n activeNodesSorted = [...favActiveNodesSorted, ...activeNodesSorted]; // Join faves at top with non favourites\r\n\r\n const standBySorted = this.sortData(\r\n standbyNodes,\r\n this.state.sortBy,\r\n this.state.sortDirection,\r\n false\r\n );\r\n const whitelistedSorted = this.sortData(\r\n whitelisted,\r\n this.state.sortBy,\r\n this.state.sortDirection,\r\n false\r\n );\r\n\r\n this.setState({\r\n activeNodes: activeNodesSorted,\r\n standByNodes: standBySorted,\r\n whitelistedNodes: whitelistedSorted,\r\n });\r\n }\r\n\r\n onColumnUpdate(config) {\r\n this.setState({ visibleColumns: config });\r\n }\r\n\r\n onNodesFilter(key) {\r\n this.setState((prevState) => ({\r\n nodesFilter: {\r\n ...prevState.nodesFilter,\r\n [key]: !prevState.nodesFilter[key],\r\n },\r\n }));\r\n }\r\n\r\n /*\r\nSplit the data into over 300ks and under 300ks\r\nWith the over 300ks, take the top 3 if they exist and apply churn in action\r\nIf 4 nodes churn in instead of 3 each time, add another row\r\n*/\r\n findChurnIns(standbyNodes) {\r\n if (standbyNodes.length === 0) return []; //Stops filter from breaking when search returns 0\r\n\r\n const over300 = standbyNodes.filter((item) => item.bond >= 30000000000000);\r\n const over300Sorted = this.sortData(over300, \"bond\", \"desc\");\r\n\r\n if (over300Sorted.length > 0) {\r\n over300Sorted[Math.min(0, over300Sorted.length - 1)].action = \"Churn In\";\r\n over300Sorted[Math.min(1, over300Sorted.length - 1)].action = \"Churn In\";\r\n over300Sorted[Math.min(2, over300Sorted.length - 1)].action = \"Churn In\";\r\n over300Sorted[Math.min(3, over300Sorted.length - 1)].action = \"Churn In\";\r\n over300Sorted[Math.min(4, over300Sorted.length - 1)].action = \"Churn In\";\r\n }\r\n const under300 = standbyNodes.filter((item) => item.bond < 30000000000000);\r\n\r\n return [...over300Sorted, ...under300];\r\n }\r\n\r\n /*\r\nLowest Bond\r\nOldest Node\r\nWorst Performer (Can't churn out if just churned in, one cycle grace period)\r\n*/\r\n findChurnOuts(activeNodes) {\r\n if (activeNodes.length === 0) return []; //Stops filter from breaking when search returns 0\r\n\r\n let activeNodesSorted = this.sortData(activeNodes, \"age\", \"desc\");\r\n activeNodesSorted[0].action = \"Oldest\";\r\n\r\n activeNodesSorted = this.sortData(activeNodes, \"bond\", \"asc\");\r\n activeNodesSorted[0].action = \"Smallest Bond\";\r\n\r\n activeNodesSorted = this.sortData(activeNodes, \"score\", \"asc\", true);\r\n //we set the 'Worst Performing' tag in the sortData function\r\n\r\n this.calcBadValidatorRedline(activeNodes);\r\n\r\n return activeNodesSorted;\r\n }\r\n\r\n calcBadValidatorRedline(activeNodes) {\r\n //Only get nodes with slashes greater than 100\r\n const greater100Slashes = activeNodes.filter(\r\n (item) => item.slash_points > 100\r\n );\r\n //Add all the scores together for thes nodes\r\n const sum = greater100Slashes.reduce((accumulator, object) => {\r\n return accumulator + parseFloat(object.score);\r\n }, 0);\r\n //Find the average\r\n const averageScore = sum / (greater100Slashes.length + 1);\r\n\r\n const validatorLine =\r\n averageScore / this.state.globalData.BadValidatorRedline;\r\n\r\n activeNodes.map((item) => {\r\n if (item.score < validatorLine) {\r\n item.action = \"Bad Redline\";\r\n }\r\n return 0;\r\n });\r\n }\r\n\r\n /*\r\nSort by either string or number\r\nWe use string sort function if value is one of the arrays else do second sort number\r\n*/\r\n sortData(data, value = null, direction = null, worst_perform = false) {\r\n const toSortBy = value === null ? this.state.sortBy : value;\r\n let newData = [];\r\n if (this.state.sortChain) {\r\n // New sorting logic for chains\r\n const chain = toSortBy;\r\n newData = [...data].sort((a, b) => {\r\n const deltaA = a.obchains[chain] - this.state.maxChainHeights[chain];\r\n const deltaB = b.obchains[chain] - this.state.maxChainHeights[chain];\r\n if (deltaA === deltaB) {\r\n return a[\"node_address\"].localeCompare(b[\"node_address\"]);\r\n }\r\n return deltaA - deltaB;\r\n });\r\n } else {\r\n if (\r\n [\r\n \"node\",\r\n \"isp\",\r\n \"location\",\r\n \"version\",\r\n \"action\",\r\n \"node_address\",\r\n ].includes(toSortBy)\r\n ) {\r\n newData = data.sort((a, b) => a[toSortBy].localeCompare(b[toSortBy]));\r\n } else if (toSortBy === \"bond_providers\") {\r\n newData = data.sort(\r\n (a, b) => a[toSortBy].providers.length - b[toSortBy].providers.length\r\n );\r\n } else if (worst_perform === true) {\r\n const ageCutOffDays = 3;\r\n const a = data.filter((item) => parseFloat(item.age) > ageCutOffDays);\r\n const b = data.filter((item) => parseFloat(item.age) <= ageCutOffDays);\r\n const aSorted = a.sort((a, b) => b[toSortBy] - a[toSortBy]);\r\n aSorted[aSorted.length - 1].action = \"Worst Performing\";\r\n newData = [...aSorted, ...b];\r\n } else {\r\n newData = data.sort(function (a, b) {\r\n if (a[toSortBy] === b[toSortBy]) {\r\n return a[\"node_address\"].localeCompare(b[\"node_address\"]);\r\n }\r\n return a[toSortBy] > b[toSortBy] ? 1 : -1;\r\n });\r\n }\r\n }\r\n\r\n const toDirection =\r\n direction === null ? this.state.sortDirection : direction;\r\n if (toDirection === \"desc\") {\r\n newData.reverse();\r\n }\r\n\r\n return newData;\r\n }\r\n\r\n clickSortHeader(item) {\r\n const isChain = [\r\n \"BNB\",\r\n \"BTC\",\r\n \"ETH\",\r\n \"LTC\",\r\n \"BCH\",\r\n \"DOGE\",\r\n \"GAIA\",\r\n \"AVAX\",\r\n \"BSC\",\r\n ].includes(item);\r\n const direction =\r\n this.state.sortBy !== item\r\n ? \"desc\"\r\n : this.state.sortDirection === \"desc\"\r\n ? \"asc\"\r\n : \"desc\";\r\n this.setState(\r\n { sortBy: item, sortDirection: direction, sortChain: isChain },\r\n () => this.setData()\r\n );\r\n window.setTimeout(() => {}, 200);\r\n }\r\n\r\n sortColour(item) {\r\n return \"#ffffff\";\r\n }\r\n\r\n whichHeart(address) {\r\n return this.state.myFavNodes.includes(address) ? heartFull : heartBlank;\r\n }\r\n\r\n handleNodePosition = async (node_address) => {\r\n this.setState({ isPopoverOpen: true });\r\n const url = `https://api.liquify.com/thor/api/grabPosition=${node_address}`;\r\n try {\r\n const response = await fetch(url);\r\n const rawData = await response.json();\r\n if (!rawData || Object.keys(rawData).length === 0) {\r\n this.setState({ chartData: null });\r\n } else {\r\n const maxData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Number(y.max),\r\n }));\r\n\r\n const positionData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Number(y.position),\r\n }));\r\n\r\n const allXValues = [...maxData, ...positionData].map(\r\n (dataPoint) => dataPoint.x\r\n );\r\n const minX = Math.min(...allXValues);\r\n const maxX = Math.max(...allXValues);\r\n\r\n this.setState({ maxData, positionData, minX, maxX });\r\n }\r\n } catch (error) {\r\n console.error(`Error fetching data from ${url}:`, error);\r\n }\r\n };\r\n\r\n handleClickSlashes = async (node_address) => {\r\n this.setState({ isPopoverOpen: true });\r\n const url = `https://api.liquify.com/thor/api/grabSlashes=${node_address}`;\r\n try {\r\n const response = await fetch(url);\r\n const rawData = await response.json();\r\n if (!rawData || Object.keys(rawData).length === 0) {\r\n this.setState({ chartData: null });\r\n } else {\r\n const chartData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Number(y),\r\n }));\r\n this.setState({ chartData });\r\n }\r\n } catch (error) {\r\n console.error(`Error fetching data from ${url}:`, error);\r\n }\r\n };\r\n\r\n handleMaxEffectiveStake = async () => {\r\n this.setState({ isPopoverOpen: true });\r\n const url = `https://api.liquify.com/thor/api/maxEffectiveStake`;\r\n try {\r\n const response = await fetch(url);\r\n const rawData = await response.json();\r\n if (!rawData || Object.keys(rawData).length === 0) {\r\n this.setState({ chartData: null });\r\n } else {\r\n const chartData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Math.round(Number(y) / 100000000),\r\n }));\r\n\r\n this.setState({ chartData });\r\n }\r\n } catch (error) {\r\n console.error(`Error fetching data from ${url}:`, error);\r\n }\r\n };\r\n\r\n handleClickTotalBond = async () => {\r\n this.setState({ isPopoverOpen: true });\r\n const url = `https://api.liquify.com/thor/api/totalBond`;\r\n try {\r\n const response = await fetch(url);\r\n const rawData = await response.json();\r\n if (!rawData || Object.keys(rawData).length === 0) {\r\n this.setState({ chartData: null });\r\n } else {\r\n const chartData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Math.round(Number(y) / 100000000),\r\n }));\r\n\r\n this.setState({ chartData });\r\n }\r\n } catch (error) {\r\n console.error(`Error fetching data from ${url}:`, error);\r\n }\r\n };\r\n\r\n handleClickRewards = async (node_address) => {\r\n this.setState({ isPopoverOpen: true });\r\n const url = `https://api.liquify.com/thor/api/grabRewards=${node_address}`;\r\n try {\r\n const response = await fetch(url);\r\n const rawData = await response.json();\r\n if (!rawData || Object.keys(rawData).length === 0) {\r\n this.setState({ chartData: null });\r\n } else {\r\n const chartData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Math.round(Number(y) / 100000000),\r\n }));\r\n this.setState({ chartData });\r\n }\r\n } catch (error) {\r\n console.error(`Error fetching data from ${url}:`, error);\r\n }\r\n };\r\n\r\n handleClickBond = async (node_address) => {\r\n this.setState({ isPopoverOpen: true });\r\n const url = `https://api.liquify.com/thor/api/grabBond=${node_address}`;\r\n try {\r\n const response = await fetch(url);\r\n const rawData = await response.json();\r\n if (!rawData || Object.keys(rawData).length === 0) {\r\n this.setState({ chartData: null });\r\n } else {\r\n const chartData = Object.entries(rawData).map(([x, y]) => ({\r\n x: Number(x),\r\n y: Math.round(Number(y) / 100000000),\r\n }));\r\n this.setState({ chartData });\r\n }\r\n } catch (error) {\r\n console.error(`Error fetching data from ${url}:`, error);\r\n }\r\n };\r\n\r\n searchBar() {\r\n return (\r\n
    \r\n \r\n this.setState(\r\n { searchTerm: event.target.value.trim().toLowerCase() },\r\n () => this.setData()\r\n )\r\n }\r\n prefix={}\r\n />\r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n data,\r\n nodesFilter,\r\n visibleColumns,\r\n activeNodes,\r\n standByNodes,\r\n whitelistedNodes,\r\n } = this.state;\r\n\r\n const noNodesFilter =\r\n !nodesFilter.active && !nodesFilter.standby && !nodesFilter.orthers;\r\n const showActive =\r\n isEmpty(nodesFilter) || noNodesFilter || nodesFilter.active;\r\n const showStandby =\r\n isEmpty(nodesFilter) || noNodesFilter || nodesFilter.standby;\r\n const showOthers =\r\n isEmpty(nodesFilter) || noNodesFilter || nodesFilter.orthers;\r\n\r\n const chartDataConfig = this.state.chartData\r\n ? {\r\n datasets: [\r\n {\r\n label: \"Value\",\r\n data: this.state.chartData,\r\n fill: false,\r\n backgroundColor: \"rgb(28, 57, 182)\",\r\n borderColor: \"rgba(28, 57, 187, 0.2)\",\r\n tension: 0,\r\n },\r\n ],\r\n }\r\n : {};\r\n\r\n const maxPositionChartDataConfig =\r\n this.state.maxData && this.state.positionData\r\n ? {\r\n datasets: [\r\n {\r\n label: \"Max\",\r\n data: this.state.maxData,\r\n backgroundColor: \"blue\",\r\n pointRadius: 5,\r\n },\r\n {\r\n label: \"Position\",\r\n data: this.state.positionData,\r\n backgroundColor: \"orange\",\r\n pointRadius: 5,\r\n },\r\n ],\r\n }\r\n : {};\r\n\r\n const maxStakeOptions = this.state.chartData\r\n ? {\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"linear\",\r\n position: \"bottom\",\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Block Height\",\r\n },\r\n ticks: {\r\n autoSkip: true,\r\n maxTicksLimit: 10,\r\n min: Math.min(...this.state.chartData.map((data) => data.x)),\r\n max: Math.max(...this.state.chartData.map((data) => data.x)),\r\n stepSize: 20000,\r\n callback: function (value) {\r\n return value;\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Max Effective Stake (ᚱ)\",\r\n },\r\n },\r\n ],\r\n },\r\n }\r\n : {};\r\n\r\n const totalBondOptions = this.state.chartData\r\n ? {\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"linear\",\r\n position: \"bottom\",\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Block Height\",\r\n },\r\n ticks: {\r\n autoSkip: true,\r\n maxTicksLimit: 10,\r\n min: Math.min(...this.state.chartData.map((data) => data.x)),\r\n max: Math.max(...this.state.chartData.map((data) => data.x)),\r\n stepSize: 20000,\r\n callback: function (value) {\r\n return value;\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Total Bond Amount (ᚱ)\",\r\n },\r\n },\r\n ],\r\n },\r\n }\r\n : {};\r\n\r\n const maxPositionOptions = this.state.chartData\r\n ? {\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"linear\",\r\n position: \"bottom\",\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Block Height\",\r\n },\r\n ticks: {\r\n autoSkip: true,\r\n maxTicksLimit: 10,\r\n min: this.state.minX,\r\n max: this.state.maxX,\r\n stepSize: 20000,\r\n callback: function (value) {\r\n return value;\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Position\",\r\n },\r\n ticks: {\r\n min: 0,\r\n max: 100,\r\n },\r\n },\r\n ],\r\n },\r\n }\r\n : {};\r\n\r\n const slashesOptions = this.state.chartData\r\n ? {\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"linear\",\r\n position: \"bottom\",\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Block Height\",\r\n },\r\n ticks: {\r\n callback: function (value, index, values) {\r\n return value;\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Slashes Value\",\r\n },\r\n },\r\n ],\r\n },\r\n }\r\n : {};\r\n\r\n const rewardsOptions = this.state.chartData\r\n ? {\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"linear\",\r\n position: \"bottom\",\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Block Height\",\r\n },\r\n ticks: {\r\n callback: function (value, index, values) {\r\n return value;\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Reward Amount (ᚱ)\",\r\n },\r\n },\r\n ],\r\n },\r\n }\r\n : {};\r\n\r\n const bondOptions = this.state.chartData\r\n ? {\r\n scales: {\r\n xAxes: [\r\n {\r\n type: \"linear\",\r\n position: \"bottom\",\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Block Height\",\r\n },\r\n ticks: {\r\n autoSkip: true,\r\n maxTicksLimit: 10,\r\n min: Math.min(...this.state.chartData.map((data) => data.x)),\r\n stepSize: 20000,\r\n callback: function (value, index, values) {\r\n return value;\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n scaleLabel: {\r\n display: true,\r\n labelString: \"Bond Amount (ᚱ)\",\r\n },\r\n },\r\n ],\r\n },\r\n }\r\n : {};\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n Thornode Monitor\r\n
    \r\n
    \r\n {/*
    this.onNodesFilter('active')}>
    \r\n
    this.onNodesFilter('standby')}>
    \r\n
    this.onNodesFilter('orthers')}>
    */}\r\n this.onNodesFilter(\"active\")}\r\n >\r\n \r\n \r\n \r\n
    \r\n this.onNodesFilter(\"standby\")}\r\n >\r\n \r\n \r\n \r\n
    \r\n this.onNodesFilter(\"orthers\")}\r\n >\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {loading && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n {!loading && (\r\n
    \r\n \">\r\n Dashboard\r\n \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n {showActive && (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n {this.searchBar()}\r\n\r\n \r\n
    \r\n\r\n {activeNodes.length > 0 && (\r\n \r\n )}\r\n {activeNodes.length === 0 && (\r\n
    \r\n
    \r\n No Active Data Available!\r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n\r\n {showStandby && (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n {!showActive && (\r\n <>\r\n {this.searchBar()}\r\n \r\n \r\n )}\r\n
    \r\n\r\n {standByNodes.length > 0 && (\r\n \r\n )}\r\n {standByNodes.length === 0 && (\r\n
    \r\n
    \r\n No Standby Data Available!\r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n {showOthers && (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n {!showActive && !showStandby && (\r\n <>\r\n {this.searchBar()}\r\n \r\n \r\n )}\r\n
    \r\n\r\n {whitelistedNodes.length > 0 && (\r\n \r\n )}\r\n {whitelistedNodes.length === 0 && (\r\n
    \r\n
    \r\n No Other Data Available!\r\n
    \r\n
    \r\n )}\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n"],"names":["leaveIcon","_jsxs","style","marginTop","focusable","preserveAspectRatio","xmlns","fill","width","height","viewBox","className","children","_jsx","d","Header","_Layout","Footer","Content","headerStyle","cursor","padding","fontSize","color","backgroundColor","fontWeight","tdStyle","minWidth","textAlign","trStyle","iconStyle","paddingLeft","paddingRight","copyToClipWithPopup","_x","_x2","_copyToClipWithPopup","_asyncToGenerator","_regeneratorRuntime","mark","_callee","msg","ip","wrap","_context","prev","next","copyToClipboard","popUpModal","stop","apply","arguments","str","navigator","clipboard","writeText","Promise","reject","Modals","info","title","content","ModalContent","concat","onOk","okText","cancelText","SortIcon","_ref","column","sortBy","sortDirection","src","arrowDownIcon","Icons","_ref2","address","ip_address","addToFav","whichHeart","firstURL","secondURL","marginLeft","Popover","trigger","href","target","rel","verticalAlign","stroke","onClick","alt","GlobalData","_ref3","_globalData$coingecko","_globalData$coingecko2","_globalData$coingecko3","_globalData$coingecko4","_chartDataConfig$data","_chartDataConfig$data2","_chartDataConfig$data3","_chartDataConfig$data4","_globalData$timeUntil","_globalData$timeUntil2","_globalData$timeUntil3","globalData","state","animateBlockCount","handleClickTotalBond","chartData","chartDataConfig","totalBondOptions","handlePopoverVisibility","handleMaxEffectiveStake","maxStakeOptions","timeToDisplay","msgTitle","churnTry","retiring","timeUntilRetry","days","hours","minutes","_globalData$timeUntil4","_globalData$timeUntil5","_globalData$timeUntil6","timeUntilChurn","_Fragment","blockIcon","parseInt","maxHeight","toLocaleString","churnsIcon","bondIcon","activeNodes","length","map","item","bond","reduce","marcketCapIcon","coingecko","market_cap","timeIcon","total_volume","datasets","data","CustomLineChart","options","JSON","stringify","overlayClassName","onVisibleChange","visible","verticalTopIcon","maxEffectiveStake","chartLineIcon","CoinGeckoData","_ref4","_globalData$coingecko5","_globalData$coingecko6","_globalData$coingecko7","_globalData$coingecko8","_globalData$coingecko9","_globalData$coingecko10","_globalData$coingecko11","runeUsdtIcon","current_price","highTradingIcon","high_24h","lowTradingIcon","low_24h","mcapRankIcon","market_cap_rank","totalSupplyIcon","total_supply","ReturnIspImage","_ref5","isp","imageAWS","imageDO","imageGCP","imageAZURE","imageHETZNER","imageVULTR","imageLeaseweb","imageDatacamp","imageComcast","imageChoopa","imageChartercoms","imageATandT","imageZenlayer","imageAljeel","imageHostinger","ChainTD","_ref6","chain","obchains","maxChainHeights","delta","isNaN","toString","BondProviderPopOver","_ref7","totalBond","a","b","index","display","justifyContent","bond_address","substring","toFixed","NodeTable","_ref8","nodeData","clickSortHeader","handleClickBond","handleClickRewards","handleClickSlashes","sortColour","chains","bondOptions","rewardsOptions","slashesOptions","maxPositionOptions","maxPositionChartDataConfig","handleNodePosition","_ref8$visibleColumns","visibleColumns","_objectSpread","defaulColumns","_ref8$sortBy","_ref8$sortDirection","_useState","useState","_useState2","_slicedToArray","currentPage","setCurrentPage","_useState3","_useState4","itemsPerPage","setItemsPerPage","totalPages","Math","ceil","pageNumbers","i","push","handleClick","event","Number","id","renderPageNumbers","number","indexOfLastItem","indexOfFirstItem","currentItems","slice","getHeaderClassName","key","getCellClassName","_Select","defaultValue","showSearch","onChange","value","borderRadius","dropdownMatchSelectWidth","label","borderWidth","borderColor","borderStyle","marginRight","alignItems","binance","bitcoin","eth","litecoin","bitcoincash","dogecoin","gaia","avax","bsc","_maxPositionChartData","_chartDataConfig$data5","_chartDataConfig$data6","_chartDataConfig$data7","_chartDataConfig$data8","_chartDataConfig$data9","_chartDataConfig$data10","maxWidth","node_address","CustomScatterChart","DotChartOutlined","age","action","location","HistoryOutlined","bond_providers","providers","current_award","apy","slash_points","score","version","forced_to_leave","requested_to_leave","rpc","bifrost","prevPage","LeftOutlined","RightOutlined","timer","nodes","leave","rewards","slashes","bfr","BTC","BNB","ETH","LTC","BCH","DOGE","GAIA","AVAX","BSC","_default","_Component","_componentWillMount","_refreshData","_inherits","_super","_createSuper","props","_ref9","_ref14","_ref23","_ref26","_this","_classCallCheck","call","setState","isPopoverOpen","_x3","_callee2","url","response","rawData","maxData","positionData","allXValues","minX","maxX","_context2","fetch","sent","json","Object","keys","entries","_ref10","_ref11","x","y","max","_ref12","_ref13","position","_toConsumableArray","dataPoint","min","t0","console","error","_x4","_callee3","_context3","_ref15","_ref16","_callee4","_context4","_ref18","_ref19","round","_callee5","_context5","_ref21","_ref22","_x5","_callee6","_context6","_ref24","_ref25","_x6","_callee7","_context7","_ref27","_ref28","standByNodes","whitelistedNodes","myFavNodes","searchTerm","nodesFilter","loading","sortByChain","bind","_assertThisInitialized","_createClass","_callee8","tmp","_context8","getCookie","parse","this","refreshData","_callee9","_this2","_context9","abrupt","getData","setData","_this3","setInterval","clearInterval","_this4","singleAddress","setCookie","newFaveNodes","indexOf","newArrayWithRemove","filter","newFaveNodesNew","_this5","includes","bondProvidersString","_this6","newItems","fave","status","standbyNodes","maxVersion","active_standy_nodes","whitelisted","findChurnOuts","findChurnIns","returnSearchedData","activeNodesSorted","sortData","favActiveNodesSorted","standBySorted","whitelistedSorted","config","prevState","_defineProperty","over300","over300Sorted","under300","calcBadValidatorRedline","greater100Slashes","validatorLine","accumulator","object","parseFloat","BadValidatorRedline","_this7","undefined","direction","worst_perform","toSortBy","newData","sortChain","sort","deltaA","deltaB","localeCompare","aSorted","reverse","_this8","isChain","window","setTimeout","heartFull","heartBlank","_this9","_Input","background","trim","toLowerCase","prefix","SearchOutlined","_this10","_this$state","noNodesFilter","active","standby","orthers","showActive","isEmpty","showStandby","showOthers","tension","pointRadius","scales","xAxes","type","scaleLabel","labelString","ticks","autoSkip","maxTicksLimit","stepSize","callback","yAxes","values","thornode","margin","onNodesFilter","activeIcon","powerIcon","threeDotsIcon","loadingIcon","_Breadcrumb","separator","Item","Link","to","PUBLIC_ROUTE","ACTIVE_DASHBOARD","_Button","searchBar","VisibleColumn","initialConfig","onConfigUpdate","onColumnUpdate","STANDBY_DASHBOARD","OTHER_DASHBOARD","githubIcon","twitterIcon","liquifyLogo","Component","baseKeys","require","getTag","isArguments","isArray","isArrayLike","isBuffer","isPrototype","isTypedArray","hasOwnProperty","prototype","module","exports","splice","tag","size"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/167.26dd9587.chunk.js b/build/static/js/167.26dd9587.chunk.js new file mode 100644 index 0000000..476e822 --- /dev/null +++ b/build/static/js/167.26dd9587.chunk.js @@ -0,0 +1,3 @@ +/*! For license information please see 167.26dd9587.chunk.js.LICENSE.txt */ +(self.webpackChunkisomorphic=self.webpackChunkisomorphic||[]).push([[167],{34633:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(72791),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM288 604a64 64 0 10128 0 64 64 0 10-128 0zm118-224a48 48 0 1096 0 48 48 0 10-96 0zm158 228a96 96 0 10192 0 96 96 0 10-192 0zm148-314a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"dot-chart",theme:"outlined"},a=n(90757),l=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};l.displayName="DotChartOutlined";var s=o.forwardRef(l)},37295:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(72791),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"}}]},name:"down",theme:"outlined"},a=n(90757),l=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};l.displayName="DownOutlined";var s=o.forwardRef(l)},39045:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(72791),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 003 14.1zm167.7 301.1l-56.7-19.5a8 8 0 00-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 01-112.5 75.9 352.18 352.18 0 01-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 01-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 01171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 01112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 01775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z"}}]},name:"history",theme:"outlined"},a=n(90757),l=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};l.displayName="HistoryOutlined";var s=o.forwardRef(l)},76864:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(72791),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"}}]},name:"left",theme:"outlined"},a=n(90757),l=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};l.displayName="LeftOutlined";var s=o.forwardRef(l)},41938:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(72791),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"},a=n(90757),l=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};l.displayName="RightOutlined";var s=o.forwardRef(l)},50341:function(e,t,n){"use strict";n.d(t,{d:function(){return f}});var r,o=function(e){var t="function"===typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"===typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=function(e,t){var n="function"===typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o=l[c]){var u=console.log.bind(console);t===r.ERROR&&console.error&&(u=console.error.bind(console)),t===r.WARN&&console.warn&&(u=console.warn.bind(console));var f="[".concat(t,"] ").concat(this._ts()," ").concat(this.name),d="";if(1===a.length&&"string"===typeof a[0])u(d="".concat(f," - ").concat(a[0]));else if(1===a.length)d="".concat(f," ").concat(a[0]),u(f,a[0]);else if("string"===typeof a[0]){var h=a.slice(1);1===h.length&&(h=h[0]),d="".concat(f," - ").concat(a[0]," ").concat(h),u("".concat(f," - ").concat(a[0]),h)}else d="".concat(f," ").concat(a),u(f,a);try{for(var p=o(this._pluggables),v=p.next();!v.done;v=p.next()){var m=v.value,g={message:d,timestamp:Date.now()};m.pushLogs([g])}}catch(y){n={error:y}}finally{try{v&&!v.done&&(i=p.return)&&i.call(p)}finally{if(n)throw n.error}}}},e.prototype.log=function(){for(var e=[],t=0;t0)&&!(r=i.next()).done;)a.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},u=new s("Amplify"),f=new(function(){function e(){this._components=[],this._config={},this._modules={},this.Auth=null,this.Analytics=null,this.API=null,this.Credentials=null,this.Storage=null,this.I18n=null,this.Cache=null,this.PubSub=null,this.Interactions=null,this.Pushnotification=null,this.UI=null,this.XR=null,this.Predictions=null,this.DataStore=null,this.Geo=null,this.Notifications=null,this.Logger=s,this.ServiceWorker=null}return e.prototype.register=function(e){u.debug("component registered in amplify",e),this._components.push(e),"function"===typeof e.getModuleName?(this._modules[e.getModuleName()]=e,this[e.getModuleName()]=e):u.debug("no getModuleName method for component",e),e.configure(this._config)},e.prototype.configure=function(e){var t=this;return e?(this._config=Object.assign(this._config,e),u.debug("amplify config",this._config),Object.entries(this._modules).forEach((function(e){var n=c(e,2),r=(n[0],n[1]);Object.keys(r).forEach((function(e){t._modules[e]&&(r[e]=t._modules[e])}))})),this._components.map((function(e){e.configure(t._config)})),this._config):this._config},e.prototype.addPluggable=function(e){e&&e.getCategory&&"function"===typeof e.getCategory&&this._components.map((function(t){t.addPluggable&&"function"===typeof t.addPluggable&&t.addPluggable(e)}))},e}())},29464:function(e,t,n){"use strict";n.d(t,{mL:function(){return s},q0:function(){return l}});var r=function(){return{height:0,opacity:0}},o=function(e){return{height:e.scrollHeight,opacity:1}},i=function(e,t){return!0===(null===t||void 0===t?void 0:t.deadline)||"height"===t.propertyName},a={motionName:"ant-motion-collapse",onAppearStart:r,onEnterStart:r,onAppearActive:o,onEnterActive:o,onLeaveStart:function(e){return{height:e?e.offsetHeight:0}},onLeaveActive:r,onAppearEnd:i,onEnterEnd:i,onLeaveEnd:i,motionDeadline:500},l=((0,n(79393).b)("bottomLeft","bottomRight","topLeft","topRight"),function(e){return void 0===e||"topLeft"!==e&&"topRight"!==e?"slide-up":"slide-down"}),s=function(e,t,n){return void 0!==n?n:"".concat(e,"-").concat(t)};t.ZP=a},89631:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(87462),o=n(1961),i={adjustX:1,adjustY:1},a={adjustX:0,adjustY:0},l=[0,0];function s(e){return"boolean"===typeof e?e?i:a:(0,r.Z)((0,r.Z)({},a),e)}function c(e){var t=e.arrowWidth,n=void 0===t?4:t,i=e.horizontalArrowShift,a=void 0===i?16:i,c=e.verticalArrowShift,u=void 0===c?8:c,f=e.autoAdjustOverflow,d=e.arrowPointAtCenter,h={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(a+n),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(u+n)]},topRight:{points:["br","tc"],offset:[a+n,-4]},rightTop:{points:["tl","cr"],offset:[4,-(u+n)]},bottomRight:{points:["tr","bc"],offset:[a+n,4]},rightBottom:{points:["bl","cr"],offset:[4,u+n]},bottomLeft:{points:["tl","bc"],offset:[-(a+n),4]},leftBottom:{points:["br","cl"],offset:[-4,u+n]}};return Object.keys(h).forEach((function(e){h[e]=d?(0,r.Z)((0,r.Z)({},h[e]),{overflow:s(f),targetOffset:l}):(0,r.Z)((0,r.Z)({},o.C[e]),{overflow:s(f)}),h[e].ignoreShake=!0})),h}},96096:function(e,t,n){"use strict";n.d(t,{fk:function(){return a},jD:function(){return i}});var r,o=n(97793),i=function(){return(0,o.Z)()&&window.document.documentElement},a=function(){if(!i())return!1;if(void 0!==r)return r;var e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),r=1===e.scrollHeight,document.body.removeChild(e),r}},22961:function(e,t,n){"use strict";n.d(t,{Z:function(){return zn}});var r=n(4942),o=n(87462),i=n(93433),a=n(81694),l=n.n(a),s=n(76927),c=n(72791),u=n(71929),f=n(15671),d=n(43144),h=n(60136),p=n(27277),v=n(1413),m={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"ellipsis",theme:"outlined"},g=n(90757),y=function(e,t){return c.createElement(g.Z,(0,v.Z)((0,v.Z)({},e),{},{ref:t,icon:m}))};y.displayName="EllipsisOutlined";var b=c.forwardRef(y),x=n(29439),E=n(45987),w=n(84328);function C(e){var t=c.useRef();t.current=e;var n=c.useCallback((function(){for(var e,n=arguments.length,r=new Array(n),o=0;o2&&void 0!==arguments[2]&&arguments[2],r=new Set;return function e(t,o){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=r.has(t);if(L(!a,"Warning: There may be circular references"),a)return!1;if(t===o)return!0;if(n&&i>1)return!1;r.add(t);var l=i+1;if(Array.isArray(t)){if(!Array.isArray(o)||t.length!==o.length)return!1;for(var s=0;s=ee.F1&&t<=ee.F12)return!1;switch(t){case ee.ALT:case ee.CAPS_LOCK:case ee.CONTEXT_MENU:case ee.CTRL:case ee.DOWN:case ee.END:case ee.ESC:case ee.HOME:case ee.INSERT:case ee.LEFT:case ee.MAC_FF_META:case ee.META:case ee.NUMLOCK:case ee.NUM_CENTER:case ee.PAGE_DOWN:case ee.PAGE_UP:case ee.PAUSE:case ee.PRINT_SCREEN:case ee.RIGHT:case ee.SHIFT:case ee.UP:case ee.WIN_KEY:case ee.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=ee.ZERO&&e<=ee.NINE)return!0;if(e>=ee.NUM_ZERO&&e<=ee.NUM_MULTIPLY)return!0;if(e>=ee.A&&e<=ee.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case ee.SPACE:case ee.QUESTION_MARK:case ee.NUM_PLUS:case ee.NUM_MINUS:case ee.NUM_PERIOD:case ee.NUM_DIVISION:case ee.SEMICOLON:case ee.DASH:case ee.EQUALS:case ee.COMMA:case ee.PERIOD:case ee.SLASH:case ee.APOSTROPHE:case ee.SINGLE_QUOTE:case ee.OPEN_SQUARE_BRACKET:case ee.BACKSLASH:case ee.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},te=ee,ne=function(e){return+setTimeout(e,16)},re=function(e){return clearTimeout(e)};"undefined"!==typeof window&&"requestAnimationFrame"in window&&(ne=function(e){return window.requestAnimationFrame(e)},re=function(e){return window.cancelAnimationFrame(e)});var oe=0,ie=new Map;function ae(e){ie.delete(e)}var le=function(e){var t=oe+=1;return function n(r){if(0===r)ae(t),e();else{var o=ne((function(){n(r-1)}));ie.set(t,o)}}(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1),t};le.cancel=function(e){var t=ie.get(e);return ae(t),re(t)};var se=le,ce=function(e){if(!e)return!1;if(e instanceof Element){if(e.offsetParent)return!0;if(e.getBBox){var t=e.getBBox(),n=t.width,r=t.height;if(n||r)return!0}if(e.getBoundingClientRect){var o=e.getBoundingClientRect(),i=o.width,a=o.height;if(i||a)return!0}}return!1};function ue(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(ce(e)){var n=e.nodeName.toLowerCase(),r=["input","select","textarea","button"].includes(n)||e.isContentEditable||"a"===n&&!!e.getAttribute("href"),o=e.getAttribute("tabindex"),i=Number(o),a=null;return o&&!Number.isNaN(i)?a=i:r&&null===a&&(a=0),r&&e.disabled&&(a=null),null!==a&&(a>=0||t&&a<0)}return!1}function fe(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=(0,i.Z)(e.querySelectorAll("*")).filter((function(e){return ue(e,t)}));return ue(e,t)&&n.unshift(e),n}var de=te.LEFT,he=te.RIGHT,pe=te.UP,ve=te.DOWN,me=te.ENTER,ge=te.ESC,ye=te.HOME,be=te.END,xe=[pe,ve,de,he];function Ee(e,t){return fe(e,!0).filter((function(e){return t.has(e)}))}function we(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;if(!e)return null;var o=Ee(e,t),i=o.length,a=o.findIndex((function(e){return n===e}));return r<0?-1===a?a=i-1:a-=1:r>0&&(a+=1),o[a=(a+i)%i]}function Ce(e,t,n,o,i,a,l,s,u,f){var d=c.useRef(),h=c.useRef();h.current=t;var p=function(){se.cancel(d.current)};return c.useEffect((function(){return function(){p()}}),[]),function(c){var v=c.which;if([].concat(xe,[me,ge,ye,be]).includes(v)){var m,g,y,b=function(){return m=new Set,g=new Map,y=new Map,a().forEach((function(e){var t=document.querySelector("[data-menu-id='".concat(V(o,e),"']"));t&&(m.add(t),y.set(t,e),g.set(e,t))})),m};b();var x=function(e,t){for(var n=e||document.activeElement;n;){if(t.has(n))return n;n=n.parentElement}return null}(g.get(t),m),E=y.get(x),w=function(e,t,n,o){var i,a,l,s,c="prev",u="next",f="children",d="parent";if("inline"===e&&o===me)return{inlineTrigger:!0};var h=(i={},(0,r.Z)(i,pe,c),(0,r.Z)(i,ve,u),i),p=(a={},(0,r.Z)(a,de,n?u:c),(0,r.Z)(a,he,n?c:u),(0,r.Z)(a,ve,f),(0,r.Z)(a,me,f),a),v=(l={},(0,r.Z)(l,pe,c),(0,r.Z)(l,ve,u),(0,r.Z)(l,me,f),(0,r.Z)(l,ge,d),(0,r.Z)(l,de,n?f:d),(0,r.Z)(l,he,n?d:f),l);switch(null===(s={inline:h,horizontal:p,vertical:v,inlineSub:h,horizontalSub:v,verticalSub:v}["".concat(e).concat(t?"":"Sub")])||void 0===s?void 0:s[o]){case c:return{offset:-1,sibling:!0};case u:return{offset:1,sibling:!0};case d:return{offset:-1,sibling:!1};case f:return{offset:1,sibling:!1};default:return null}}(e,1===l(E,!0).length,n,v);if(!w&&v!==ye&&v!==be)return;(xe.includes(v)||[ye,be].includes(v))&&c.preventDefault();var C=function(e){if(e){var t=e,n=e.querySelector("a");null!==n&&void 0!==n&&n.getAttribute("href")&&(t=n);var r=y.get(e);s(r),p(),d.current=se((function(){h.current===r&&t.focus()}))}};if([ye,be].includes(v)||w.sibling||!x){var S,M,_=Ee(S=x&&"inline"!==e?function(e){for(var t=e;t;){if(t.getAttribute("data-menu-list"))return t;t=t.parentElement}return null}(x):i.current,m);M=v===ye?_[0]:v===be?_[_.length-1]:we(S,m,x,w.offset),C(M)}else if(w.inlineTrigger)u(E);else if(w.offset>0)u(E,!0),p(),d.current=se((function(){b();var e=x.getAttribute("aria-controls"),t=we(document.getElementById(e),m);C(t)}),5);else if(w.offset<0){var N=l(E,!0),O=N[N.length-2],k=g.get(O);u(O,!1),C(k)}}null===f||void 0===f||f(c)}}var Se="__RC_UTIL_PATH_SPLIT__",Me=function(e){return e.join(Se)},_e="rc-menu-more";function Ne(){var e=c.useState({}),t=(0,x.Z)(e,2)[1],n=(0,c.useRef)(new Map),r=(0,c.useRef)(new Map),o=c.useState([]),a=(0,x.Z)(o,2),l=a[0],s=a[1],u=(0,c.useRef)(0),f=(0,c.useRef)(!1),d=(0,c.useCallback)((function(e,o){var i=Me(o);r.current.set(i,e),n.current.set(e,i),u.current+=1;var a,l=u.current;a=function(){l===u.current&&(f.current||t({}))},Promise.resolve().then(a)}),[]),h=(0,c.useCallback)((function(e,t){var o=Me(t);r.current.delete(o),n.current.delete(e)}),[]),p=(0,c.useCallback)((function(e){s(e)}),[]),v=(0,c.useCallback)((function(e,t){var r=n.current.get(e)||"",o=r.split(Se);return t&&l.includes(o[0])&&o.unshift(_e),o}),[l]),m=(0,c.useCallback)((function(e,t){return e.some((function(e){return v(e,!0).includes(t)}))}),[v]),g=(0,c.useCallback)((function(e){var t="".concat(n.current.get(e)).concat(Se),o=new Set;return(0,i.Z)(r.current.keys()).forEach((function(e){e.startsWith(t)&&o.add(r.current.get(e))})),o}),[]);return c.useEffect((function(){return function(){f.current=!0}}),[]),{registerPath:d,unregisterPath:h,refreshOverflowKeys:p,isSubPathKey:m,getKeyPath:v,getKeys:function(){var e=(0,i.Z)(n.current.keys());return l.length&&e.push(_e),e},getSubPathKeys:g}}function Oe(e){var t=c.useRef(e);t.current=e;var n=c.useCallback((function(){for(var e,n=arguments.length,r=new Array(n),o=0;o1&&void 0!==arguments[1]?arguments[1]:{},n=[];return c.Children.forEach(e,(function(e){(void 0!==e&&null!==e||t.keepEmpty)&&(Array.isArray(e)?n=n.concat(qe(e)):(0,Ae.isFragment)(e)&&e.props?n=n.concat(qe(e.props.children,t)):n.push(e))})),n}var Qe=["label","children","key","type"];function $e(e,t){return qe(e).map((function(e,n){if(c.isValidElement(e)){var r,o,a=e.key,l=null!==(r=null===(o=e.props)||void 0===o?void 0:o.eventKey)&&void 0!==r?r:a;(null===l||void 0===l)&&(l="tmp_key-".concat([].concat((0,i.Z)(t),[n]).join("-")));var s={key:l,eventKey:l};return c.cloneElement(e,s)}return e}))}function Je(e){return(e||[]).map((function(e,t){if(e&&"object"===(0,F.Z)(e)){var n=e,r=n.label,i=n.children,a=n.key,l=n.type,s=(0,E.Z)(n,Qe),u=null!==a&&void 0!==a?a:"tmp-".concat(t);return i||"group"===l?"group"===l?c.createElement(xt,(0,o.Z)({key:u},s,{title:r}),Je(i)):c.createElement(ht,(0,o.Z)({key:u},s,{title:r}),Je(i)):"divider"===l?c.createElement(Et,(0,o.Z)({key:u},s)):c.createElement(We,(0,o.Z)({key:u},s),r)}return null})).filter((function(e){return e}))}function et(e,t,n){var r=e;return t&&(r=Je(t)),$e(r,n)}var tt=n(94869),nt={adjustX:1,adjustY:1},rt={topLeft:{points:["bl","tl"],overflow:nt,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:nt,offset:[0,7]},leftTop:{points:["tr","tl"],overflow:nt,offset:[-4,0]},rightTop:{points:["tl","tr"],overflow:nt,offset:[4,0]}},ot={topLeft:{points:["bl","tl"],overflow:nt,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:nt,offset:[0,7]},rightTop:{points:["tr","tl"],overflow:nt,offset:[-4,0]},leftTop:{points:["tl","tr"],overflow:nt,offset:[4,0]}};function it(e,t,n){return t||(n?n[e]||n.other:void 0)}var at={horizontal:"bottomLeft",vertical:"rightTop","vertical-left":"rightTop","vertical-right":"leftTop"};function lt(e){var t=e.prefixCls,n=e.visible,o=e.children,i=e.popup,a=e.popupClassName,s=e.popupOffset,u=e.disabled,f=e.mode,d=e.onVisibleChange,h=c.useContext(W),p=h.getPopupContainer,m=h.rtl,g=h.subMenuOpenDelay,y=h.subMenuCloseDelay,b=h.builtinPlacements,E=h.triggerSubMenuAction,w=h.forceSubMenuRender,C=h.rootClassName,S=h.motion,M=h.defaultMotions,_=c.useState(!1),N=(0,x.Z)(_,2),O=N[0],k=N[1],T=m?(0,v.Z)((0,v.Z)({},ot),b):(0,v.Z)((0,v.Z)({},rt),b),P=at[f],A=it(f,S,M),I=c.useRef(A);"inline"!==f&&(I.current=A);var R=(0,v.Z)((0,v.Z)({},I.current),{},{leavedClassName:"".concat(t,"-hidden"),removeOnLeave:!1,motionAppear:!0}),D=c.useRef();return c.useEffect((function(){return D.current=se((function(){k(n)})),function(){se.cancel(D.current)}}),[n]),c.createElement(tt.Z,{prefixCls:t,popupClassName:l()("".concat(t,"-popup"),(0,r.Z)({},"".concat(t,"-rtl"),m),a,C),stretch:"horizontal"===f?"minWidth":null,getPopupContainer:p,builtinPlacements:T,popupPlacement:P,popupVisible:O,popup:i,popupAlign:s&&{offset:s},action:u?[]:[E],mouseEnterDelay:g,mouseLeaveDelay:y,onPopupVisibleChange:d,forceRender:w,popupMotion:R},o)}var st=n(53276);function ct(e){var t=e.id,n=e.open,r=e.keyPath,i=e.children,a="inline",l=c.useContext(W),s=l.prefixCls,u=l.forceSubMenuRender,f=l.motion,d=l.defaultMotions,h=l.mode,p=c.useRef(!1);p.current=h===a;var m=c.useState(!p.current),g=(0,x.Z)(m,2),y=g[0],b=g[1],E=!!p.current&&n;c.useEffect((function(){p.current&&b(!1)}),[h]);var w=(0,v.Z)({},it(a,f,d));r.length>1&&(w.motionAppear=!1);var C=w.onVisibleChanged;return w.onVisibleChanged=function(e){return p.current||e||b(!0),null===C||void 0===C?void 0:C(e)},y?null:c.createElement(K,{mode:a,locked:!p.current},c.createElement(st.ZP,(0,o.Z)({visible:E},w,{forceRender:u,removeOnLeave:!1,leavedClassName:"".concat(s,"-hidden")}),(function(e){var n=e.className,r=e.style;return c.createElement(Xe,{id:t,className:n,style:r},i)})))}var ut=["style","className","title","eventKey","warnKey","disabled","internalPopupClose","children","itemIcon","expandIcon","popupClassName","popupOffset","onClick","onMouseEnter","onMouseLeave","onTitleClick","onTitleMouseEnter","onTitleMouseLeave"],ft=["active"],dt=function(e){var t,n=e.style,i=e.className,a=e.title,s=e.eventKey,u=(e.warnKey,e.disabled),f=e.internalPopupClose,d=e.children,h=e.itemIcon,p=e.expandIcon,m=e.popupClassName,g=e.popupOffset,y=e.onClick,b=e.onMouseEnter,C=e.onMouseLeave,S=e.onTitleClick,M=e.onTitleMouseEnter,_=e.onTitleMouseLeave,N=(0,E.Z)(e,ut),O=H(s),k=c.useContext(W),T=k.prefixCls,P=k.mode,A=k.openKeys,I=k.disabled,R=k.overflowDisabled,D=k.activeKey,L=k.selectedKeys,Z=k.itemIcon,F=k.expandIcon,j=k.onItemClick,U=k.onOpenChange,V=k.onActive,z=c.useContext(J)._internalRenderSubMenuItem,B=c.useContext($).isSubPathKey,G=Q(),Y="".concat(T,"-submenu"),X=I||u,q=c.useRef(),ee=c.useRef();var te=h||Z,ne=p||F,re=A.includes(s),oe=!R&&re,ie=B(L,s),ae=Re(s,X,M,_),le=ae.active,se=(0,E.Z)(ae,ft),ce=c.useState(!1),ue=(0,x.Z)(ce,2),fe=ue[0],de=ue[1],he=function(e){X||de(e)},pe=c.useMemo((function(){return le||"inline"!==P&&(fe||B([D],s))}),[P,le,D,fe,s,B]),ve=De(G.length),me=Oe((function(e){null===y||void 0===y||y(Fe(e)),j(e)})),ge=O&&"".concat(O,"-popup"),ye=c.createElement("div",(0,o.Z)({role:"menuitem",style:ve,className:"".concat(Y,"-title"),tabIndex:X?null:-1,ref:q,title:"string"===typeof a?a:null,"data-menu-id":R&&O?null:O,"aria-expanded":oe,"aria-haspopup":!0,"aria-controls":ge,"aria-disabled":X,onClick:function(e){X||(null===S||void 0===S||S({key:s,domEvent:e}),"inline"===P&&U(s,!re))},onFocus:function(){V(s)}},se),a,c.createElement(Le,{icon:"horizontal"!==P?ne:null,props:(0,v.Z)((0,v.Z)({},e),{},{isOpen:oe,isSubMenu:!0})},c.createElement("i",{className:"".concat(Y,"-arrow")}))),be=c.useRef(P);if("inline"!==P&&G.length>1?be.current="vertical":be.current=P,!R){var xe=be.current;ye=c.createElement(lt,{mode:xe,prefixCls:Y,visible:!f&&oe&&"inline"!==P,popupClassName:m,popupOffset:g,popup:c.createElement(K,{mode:"horizontal"===xe?"vertical":xe},c.createElement(Xe,{id:ge,ref:ee},d)),disabled:X,onVisibleChange:function(e){"inline"!==P&&U(s,e)}},ye)}var Ee=c.createElement(w.Z.Item,(0,o.Z)({role:"none"},N,{component:"li",style:n,className:l()(Y,"".concat(Y,"-").concat(P),i,(t={},(0,r.Z)(t,"".concat(Y,"-open"),oe),(0,r.Z)(t,"".concat(Y,"-active"),pe),(0,r.Z)(t,"".concat(Y,"-selected"),ie),(0,r.Z)(t,"".concat(Y,"-disabled"),X),t)),onMouseEnter:function(e){he(!0),null===b||void 0===b||b({key:s,domEvent:e})},onMouseLeave:function(e){he(!1),null===C||void 0===C||C({key:s,domEvent:e})}}),ye,!R&&c.createElement(ct,{id:ge,open:oe,keyPath:G},d));return z&&(Ee=z(Ee,e,{selected:ie,active:pe,open:oe,disabled:X})),c.createElement(K,{onItemClick:me,mode:"horizontal"===P?"vertical":P,itemIcon:te,expandIcon:ne},Ee)};function ht(e){var t,n=e.eventKey,r=e.children,o=Q(n),i=$e(r,o),a=X();return c.useEffect((function(){if(a)return a.registerPath(n,o),function(){a.unregisterPath(n,o)}}),[o]),t=a?i:c.createElement(dt,e,i),c.createElement(q.Provider,{value:o},t)}var pt=["prefixCls","rootClassName","style","className","tabIndex","items","children","direction","id","mode","inlineCollapsed","disabled","disabledOverflow","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","defaultOpenKeys","openKeys","activeKey","defaultActiveFirst","selectable","multiple","defaultSelectedKeys","selectedKeys","onSelect","onDeselect","inlineIndent","motion","defaultMotions","triggerSubMenuAction","builtinPlacements","itemIcon","expandIcon","overflowedIndicator","overflowedIndicatorPopupClassName","getPopupContainer","onClick","onOpenChange","onKeyDown","openAnimation","openTransitionName","_internalRenderMenuItem","_internalRenderSubMenuItem"],vt=[],mt=c.forwardRef((function(e,t){var n,a,s=e,u=s.prefixCls,f=void 0===u?"rc-menu":u,d=s.rootClassName,h=s.style,p=s.className,m=s.tabIndex,g=void 0===m?0:m,y=s.items,b=s.children,C=s.direction,S=s.id,M=s.mode,_=void 0===M?"vertical":M,N=s.inlineCollapsed,O=s.disabled,T=s.disabledOverflow,P=s.subMenuOpenDelay,A=void 0===P?.1:P,I=s.subMenuCloseDelay,R=void 0===I?.1:I,D=s.forceSubMenuRender,L=s.defaultOpenKeys,F=s.openKeys,H=s.activeKey,z=s.defaultActiveFirst,B=s.selectable,W=void 0===B||B,G=s.multiple,X=void 0!==G&&G,q=s.defaultSelectedKeys,Q=s.selectedKeys,ee=s.onSelect,te=s.onDeselect,ne=s.inlineIndent,re=void 0===ne?24:ne,oe=s.motion,ie=s.defaultMotions,ae=s.triggerSubMenuAction,le=void 0===ae?"hover":ae,se=s.builtinPlacements,ce=s.itemIcon,ue=s.expandIcon,fe=s.overflowedIndicator,de=void 0===fe?"...":fe,he=s.overflowedIndicatorPopupClassName,pe=s.getPopupContainer,ve=s.onClick,me=s.onOpenChange,ge=s.onKeyDown,ye=(s.openAnimation,s.openTransitionName,s._internalRenderMenuItem),be=s._internalRenderSubMenuItem,xe=(0,E.Z)(s,pt),Ee=c.useMemo((function(){return et(b,y,vt)}),[b,y]),we=c.useState(!1),Se=(0,x.Z)(we,2),Me=Se[0],Pe=Se[1],Ae=c.useRef(),Ie=function(e){var t=k(e,{value:e}),n=(0,x.Z)(t,2),r=n[0],o=n[1];return c.useEffect((function(){Te+=1;var e="".concat(ke,"-").concat(Te);o("rc-menu-uuid-".concat(e))}),[]),r}(S),Re="rtl"===C;var De=k(L,{value:F,postState:function(e){return e||vt}}),Le=(0,x.Z)(De,2),Ze=Le[0],je=Le[1],Ue=function(e){function t(){je(e),null===me||void 0===me||me(e)}arguments.length>1&&void 0!==arguments[1]&&arguments[1]?(0,Z.flushSync)(t):t()},Ve=c.useState(Ze),He=(0,x.Z)(Ve,2),ze=He[0],Be=He[1],Ke=c.useRef(!1),Ge=c.useMemo((function(){return"inline"!==_&&"vertical"!==_||!N?[_,!1]:["vertical",N]}),[_,N]),Ye=(0,x.Z)(Ge,2),Xe=Ye[0],qe=Ye[1],Qe="inline"===Xe,$e=c.useState(Xe),Je=(0,x.Z)($e,2),tt=Je[0],nt=Je[1],rt=c.useState(qe),ot=(0,x.Z)(rt,2),it=ot[0],at=ot[1];c.useEffect((function(){nt(Xe),at(qe),Ke.current&&(Qe?je(ze):Ue(vt))}),[Xe,qe]);var lt=c.useState(0),st=(0,x.Z)(lt,2),ct=st[0],ut=st[1],ft=ct>=Ee.length-1||"horizontal"!==tt||T;c.useEffect((function(){Qe&&Be(Ze)}),[Ze]),c.useEffect((function(){return Ke.current=!0,function(){Ke.current=!1}}),[]);var dt=Ne(),mt=dt.registerPath,gt=dt.unregisterPath,yt=dt.refreshOverflowKeys,bt=dt.isSubPathKey,xt=dt.getKeyPath,Et=dt.getKeys,wt=dt.getSubPathKeys,Ct=c.useMemo((function(){return{registerPath:mt,unregisterPath:gt}}),[mt,gt]),St=c.useMemo((function(){return{isSubPathKey:bt}}),[bt]);c.useEffect((function(){yt(ft?vt:Ee.slice(ct+1).map((function(e){return e.key})))}),[ct,ft]);var Mt=k(H||z&&(null===(n=Ee[0])||void 0===n?void 0:n.key),{value:H}),_t=(0,x.Z)(Mt,2),Nt=_t[0],Ot=_t[1],kt=Oe((function(e){Ot(e)})),Tt=Oe((function(){Ot(void 0)}));(0,c.useImperativeHandle)(t,(function(){return{list:Ae.current,focus:function(e){var t,n,r,o,i=null!==Nt&&void 0!==Nt?Nt:null===(t=Ee.find((function(e){return!e.props.disabled})))||void 0===t?void 0:t.key;i&&(null===(n=Ae.current)||void 0===n||null===(r=n.querySelector("li[data-menu-id='".concat(V(Ie,i),"']")))||void 0===r||null===(o=r.focus)||void 0===o||o.call(r,e))}}}));var Pt=k(q||[],{value:Q,postState:function(e){return Array.isArray(e)?e:null===e||void 0===e?vt:[e]}}),At=(0,x.Z)(Pt,2),It=At[0],Rt=At[1],Dt=Oe((function(e){null===ve||void 0===ve||ve(Fe(e)),function(e){if(W){var t,n=e.key,r=It.includes(n);t=X?r?It.filter((function(e){return e!==n})):[].concat((0,i.Z)(It),[n]):[n],Rt(t);var o=(0,v.Z)((0,v.Z)({},e),{},{selectedKeys:t});r?null===te||void 0===te||te(o):null===ee||void 0===ee||ee(o)}!X&&Ze.length&&"inline"!==tt&&Ue(vt)}(e)})),Lt=Oe((function(e,t){var n=Ze.filter((function(t){return t!==e}));if(t)n.push(e);else if("inline"!==tt){var r=wt(e);n=n.filter((function(e){return!r.has(e)}))}j(Ze,n,!0)||Ue(n,!0)})),Zt=Oe(pe),Ft=Ce(tt,Nt,Re,Ie,Ae,Et,xt,Ot,(function(e,t){var n=null!==t&&void 0!==t?t:!Ze.includes(e);Lt(e,n)}),ge);c.useEffect((function(){Pe(!0)}),[]);var jt=c.useMemo((function(){return{_internalRenderMenuItem:ye,_internalRenderSubMenuItem:be}}),[ye,be]),Ut="horizontal"!==tt||T?Ee:Ee.map((function(e,t){return c.createElement(K,{key:e.key,overflowDisabled:t>ct},e)})),Vt=c.createElement(w.Z,(0,o.Z)({id:S,ref:Ae,prefixCls:"".concat(f,"-overflow"),component:"ul",itemComponent:We,className:l()(f,"".concat(f,"-root"),"".concat(f,"-").concat(tt),p,(a={},(0,r.Z)(a,"".concat(f,"-inline-collapsed"),it),(0,r.Z)(a,"".concat(f,"-rtl"),Re),a),d),dir:C,style:h,role:"menu",tabIndex:g,data:Ut,renderRawItem:function(e){return e},renderRawRest:function(e){var t=e.length,n=t?Ee.slice(-t):null;return c.createElement(ht,{eventKey:_e,title:de,disabled:ft,internalPopupClose:0===t,popupClassName:he},n)},maxCount:"horizontal"!==tt||T?w.Z.INVALIDATE:w.Z.RESPONSIVE,ssr:"full","data-menu-list":!0,onVisibleChange:function(e){ut(e)},onKeyDown:Ft},xe));return c.createElement(J.Provider,{value:jt},c.createElement(U.Provider,{value:Ie},c.createElement(K,{prefixCls:f,rootClassName:d,mode:tt,openKeys:Ze,rtl:Re,disabled:O,motion:Me?oe:null,defaultMotions:Me?ie:null,activeKey:Nt,onActive:kt,onInactive:Tt,selectedKeys:It,inlineIndent:re,subMenuOpenDelay:A,subMenuCloseDelay:R,forceSubMenuRender:D,builtinPlacements:se,triggerSubMenuAction:le,getPopupContainer:Zt,itemIcon:ce,expandIcon:ue,onItemClick:Dt,onOpenChange:Lt},c.createElement($.Provider,{value:St},Vt),c.createElement("div",{style:{display:"none"},"aria-hidden":!0},c.createElement(Y.Provider,{value:Ct},Ee)))))})),gt=["className","title","eventKey","children"],yt=["children"],bt=function(e){var t=e.className,n=e.title,r=(e.eventKey,e.children),i=(0,E.Z)(e,gt),a=c.useContext(W).prefixCls,s="".concat(a,"-item-group");return c.createElement("li",(0,o.Z)({role:"presentation"},i,{onClick:function(e){return e.stopPropagation()},className:l()(s,t)}),c.createElement("div",{role:"presentation",className:"".concat(s,"-title"),title:"string"===typeof n?n:void 0},n),c.createElement("ul",{role:"group",className:"".concat(s,"-list")},r))};function xt(e){var t=e.children,n=(0,E.Z)(e,yt),r=$e(t,Q(n.eventKey));return X()?r:c.createElement(bt,Pe(n,["warnKey"]),r)}function Et(e){var t=e.className,n=e.style,r=c.useContext(W).prefixCls;return X()?null:c.createElement("li",{className:l()("".concat(r,"-item-divider"),t),style:n})}var wt=mt;wt.Item=We,wt.SubMenu=ht,wt.ItemGroup=xt,wt.Divider=Et;var Ct=wt,St=n(71647),Mt=n(71498),_t=n(46199),Nt=n(29464),Ot=n(61113),kt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o=$t.F1&&t<=$t.F12)return!1;switch(t){case $t.ALT:case $t.CAPS_LOCK:case $t.CONTEXT_MENU:case $t.CTRL:case $t.DOWN:case $t.END:case $t.ESC:case $t.HOME:case $t.INSERT:case $t.LEFT:case $t.MAC_FF_META:case $t.META:case $t.NUMLOCK:case $t.NUM_CENTER:case $t.PAGE_DOWN:case $t.PAGE_UP:case $t.PAUSE:case $t.PRINT_SCREEN:case $t.RIGHT:case $t.SHIFT:case $t.UP:case $t.WIN_KEY:case $t.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=$t.ZERO&&e<=$t.NINE)return!0;if(e>=$t.NUM_ZERO&&e<=$t.NUM_MULTIPLY)return!0;if(e>=$t.A&&e<=$t.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case $t.SPACE:case $t.QUESTION_MARK:case $t.NUM_PLUS:case $t.NUM_MINUS:case $t.NUM_PERIOD:case $t.NUM_DIVISION:case $t.SEMICOLON:case $t.DASH:case $t.EQUALS:case $t.COMMA:case $t.PERIOD:case $t.SLASH:case $t.APOSTROPHE:case $t.SINGLE_QUOTE:case $t.OPEN_SQUARE_BRACKET:case $t.BACKSLASH:case $t.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},Jt=$t,en=function(e){return+setTimeout(e,16)},tn=function(e){return clearTimeout(e)};"undefined"!==typeof window&&"requestAnimationFrame"in window&&(en=function(e){return window.requestAnimationFrame(e)},tn=function(e){return window.cancelAnimationFrame(e)});var nn=0,rn=new Map;function on(e){rn.delete(e)}var an=function(e){var t=nn+=1;return function n(r){if(0===r)on(t),e();else{var o=en((function(){n(r-1)}));rn.set(t,o)}}(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1),t};an.cancel=function(e){var t=rn.get(e);return on(t),tn(t)};var ln=an,sn=function(e){if(!e)return!1;if(e instanceof Element){if(e.offsetParent)return!0;if(e.getBBox){var t=e.getBBox(),n=t.width,r=t.height;if(n||r)return!0}if(e.getBoundingClientRect){var o=e.getBoundingClientRect(),i=o.width,a=o.height;if(i||a)return!0}}return!1};function cn(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(sn(e)){var n=e.nodeName.toLowerCase(),r=["input","select","textarea","button"].includes(n)||e.isContentEditable||"a"===n&&!!e.getAttribute("href"),o=e.getAttribute("tabindex"),i=Number(o),a=null;return o&&!Number.isNaN(i)?a=i:r&&null===a&&(a=0),r&&e.disabled&&(a=null),null!==a&&(a>=0||t&&a<0)}return!1}function un(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=(0,i.Z)(e.querySelectorAll("*")).filter((function(e){return cn(e,t)}));return cn(e,t)&&n.unshift(e),n}var fn=Jt.ESC,dn=Jt.TAB;var hn=["arrow","prefixCls","transitionName","animation","align","placement","placements","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","visible","trigger","autoFocus"];function pn(e,t){var n=e.arrow,o=void 0!==n&&n,i=e.prefixCls,a=void 0===i?"rc-dropdown":i,s=e.transitionName,u=e.animation,f=e.align,d=e.placement,h=void 0===d?"bottomLeft":d,p=e.placements,m=void 0===p?Qt:p,g=e.getPopupContainer,y=e.showAction,b=e.hideAction,w=e.overlayClassName,C=e.overlayStyle,S=e.visible,M=e.trigger,_=void 0===M?["hover"]:M,N=e.autoFocus,O=(0,E.Z)(e,hn),k=c.useState(),T=(0,x.Z)(k,2),P=T[0],A=T[1],I="visible"in e?S:P,R=c.useRef(null);c.useImperativeHandle(t,(function(){return R.current})),function(e){var t=e.visible,n=e.setTriggerVisible,r=e.triggerRef,o=e.onVisibleChange,i=e.autoFocus,a=c.useRef(!1),l=function(){var e,i,a,l;t&&r.current&&(null===(e=r.current)||void 0===e||null===(i=e.triggerRef)||void 0===i||null===(a=i.current)||void 0===a||null===(l=a.focus)||void 0===l||l.call(a),n(!1),"function"===typeof o&&o(!1))},s=function(){var e,t,n,o,i=un(null===(e=r.current)||void 0===e||null===(t=e.popupRef)||void 0===t||null===(n=t.current)||void 0===n||null===(o=n.getElement)||void 0===o?void 0:o.call(n))[0];return!!(null===i||void 0===i?void 0:i.focus)&&(i.focus(),a.current=!0,!0)},u=function(e){switch(e.keyCode){case fn:l();break;case dn:var t=!1;a.current||(t=s()),t?e.preventDefault():l()}};c.useEffect((function(){return t?(window.addEventListener("keydown",u),i&&ln(s,3),function(){window.removeEventListener("keydown",u),a.current=!1}):function(){a.current=!1}}),[t])}({visible:I,setTriggerVisible:A,triggerRef:R,onVisibleChange:e.onVisibleChange,autoFocus:N});var D=function(){var t=function(){var t=e.overlay;return"function"===typeof t?t():t}();return c.createElement(c.Fragment,null,o&&c.createElement("div",{className:"".concat(a,"-arrow")}),t)},L=b;return L||-1===_.indexOf("contextMenu")||(L=["click"]),c.createElement(tt.Z,(0,v.Z)((0,v.Z)({builtinPlacements:m},O),{},{prefixCls:a,ref:R,popupClassName:l()(w,(0,r.Z)({},"".concat(a,"-show-arrow"),o)),popupStyle:C,action:_,showAction:y,hideAction:L||[],popupPlacement:h,popupAlign:f,popupTransitionName:s,popupAnimation:u,popupVisible:I,stretch:function(){var t=e.minOverlayWidthMatchTrigger,n=e.alignPoint;return"minOverlayWidthMatchTrigger"in e?t:!n}()?"minWidth":"",popup:"function"===typeof e.overlay?D:D(),onPopupVisibleChange:function(t){var n=e.onVisibleChange;A(t),"function"===typeof n&&n(t)},onPopupClick:function(t){var n=e.onOverlayClick;A(!1),n&&n(t)},getPopupContainer:g}),function(){var t=e.children,n=t.props?t.props:{},r=l()(n.className,function(){var t=e.openClassName;return void 0!==t?t:"".concat(a,"-open")}());return I&&t?c.cloneElement(t,{className:r}):t}())}var vn=c.forwardRef(pn),mn=n(34106),gn=n(89631),yn=n(79393),bn=n(87309),xn=n(70011),En=n(96096);function wn(e){var t=e.className,n=e.direction,i=e.index,a=e.marginDirection,l=e.children,s=e.split,u=e.wrap,f=c.useContext(Sn),d=f.horizontalSize,h=f.verticalSize,p=f.latestIndex,v={};return f.supportFlexGap||("vertical"===n?i0){var S=[];t=h.map((function(e){var t,n=Un(e.path,y);n&&S.push(n),e.children&&e.children.length&&(t=c.createElement(Kt,{items:e.children.map((function(e){return{key:e.path||e.breadcrumbName,label:m(e,y,h,Vn(S,e.path,y))}}))}));var r={separator:a};return t&&(r.overlay=t),c.createElement(Dn,(0,o.Z)({},r,{key:n||e.breadcrumbName}),m(e,y,h,S))}))}else p&&(t=(0,s.Z)(p).map((function(e,t){return e?(0,Ot.Tm)(e,{separator:a,key:t}):e})));var M=l()(C,(0,r.Z)({},"".concat(C,"-rtl"),"rtl"===w),d);return c.createElement("nav",(0,o.Z)({className:M,style:f},b),c.createElement("ol",null,t))};Hn.Item=Dn,Hn.Separator=Zn;var zn=Hn},99587:function(e,t,n){"use strict";n(38218),n(5819)},46199:function(e,t,n){"use strict";n.d(t,{D:function(){return w},Z:function(){return S}});var r=n(4942),o=n(87462),i=n(29439),a=n(1413),l=n(72791),s={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"bars",theme:"outlined"},c=n(90757),u=function(e,t){return l.createElement(c.Z,(0,a.Z)((0,a.Z)({},e),{},{ref:t,icon:s}))};u.displayName="BarsOutlined";var f=l.forwardRef(u),d=n(76864),h=n(41938),p=n(81694),v=n.n(p),m=n(71498),g=n(71929),y=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},b=n(93613),x=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o0&&void 0!==arguments[0]?arguments[0]:"").concat(e)}}();var S=l.forwardRef((function(e,t){var n=e.prefixCls,a=e.className,s=e.trigger,c=e.children,u=e.defaultCollapsed,p=void 0!==u&&u,S=e.theme,M=void 0===S?"dark":S,_=e.style,N=void 0===_?{}:_,O=e.collapsible,k=void 0!==O&&O,T=e.reverseArrow,P=void 0!==T&&T,A=e.width,I=void 0===A?200:A,R=e.collapsedWidth,D=void 0===R?80:R,L=e.zeroWidthTriggerStyle,Z=e.breakpoint,F=e.onCollapse,j=e.onBreakpoint,U=x(e,["prefixCls","className","trigger","children","defaultCollapsed","theme","style","collapsible","reverseArrow","width","collapsedWidth","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint"]),V=(0,l.useContext)(b.Gs).siderHook,H=(0,l.useState)("collapsed"in U?U.collapsed:p),z=(0,i.Z)(H,2),B=z[0],W=z[1],K=(0,l.useState)(!1),G=(0,i.Z)(K,2),Y=G[0],X=G[1];(0,l.useEffect)((function(){"collapsed"in U&&W(U.collapsed)}),[U.collapsed]);var q=function(e,t){"collapsed"in U||W(e),null===F||void 0===F||F(e,t)},Q=(0,l.useRef)();Q.current=function(e){X(e.matches),null===j||void 0===j||j(e.matches),B!==e.matches&&q(e.matches,"responsive")},(0,l.useEffect)((function(){function e(e){return Q.current(e)}var t;if("undefined"!==typeof window){var n=window.matchMedia;if(n&&Z&&Z in E){t=n("(max-width: ".concat(E[Z],")"));try{t.addEventListener("change",e)}catch(r){t.addListener(e)}e(t)}}return function(){try{null===t||void 0===t||t.removeEventListener("change",e)}catch(r){null===t||void 0===t||t.removeListener(e)}}}),[Z]),(0,l.useEffect)((function(){var e=C("ant-sider-");return V.addSider(e),function(){return V.removeSider(e)}}),[]);var $=function(){q(!B,"clickTrigger")},J=(0,l.useContext)(g.E_).getPrefixCls,ee=l.useMemo((function(){return{siderCollapsed:B}}),[B]);return l.createElement(w.Provider,{value:ee},function(){var e,i=J("layout-sider",n),u=(0,m.Z)(U,["collapsed"]),p=B?D:I,g=y(p)?"".concat(p,"px"):String(p),b=0===parseFloat(String(D||0))?l.createElement("span",{onClick:$,className:v()("".concat(i,"-zero-width-trigger"),"".concat(i,"-zero-width-trigger-").concat(P?"right":"left")),style:L},s||l.createElement(f,null)):null,x={expanded:P?l.createElement(h.Z,null):l.createElement(d.Z,null),collapsed:P?l.createElement(d.Z,null):l.createElement(h.Z,null)}[B?"collapsed":"expanded"],E=null!==s?b||l.createElement("div",{className:"".concat(i,"-trigger"),onClick:$,style:{width:g}},s||x):null,w=(0,o.Z)((0,o.Z)({},N),{flex:"0 0 ".concat(g),maxWidth:g,minWidth:g,width:g}),C=v()(i,"".concat(i,"-").concat(M),(e={},(0,r.Z)(e,"".concat(i,"-collapsed"),!!B),(0,r.Z)(e,"".concat(i,"-has-trigger"),k&&null!==s&&!b),(0,r.Z)(e,"".concat(i,"-below"),!!Y),(0,r.Z)(e,"".concat(i,"-zero-width"),0===parseFloat(g)),e),a);return l.createElement("aside",(0,o.Z)({className:C},u,{style:w,ref:t}),l.createElement("div",{className:"".concat(i,"-children")},c),k||Y&&b?E:null)}())}))},25671:function(e,t,n){"use strict";var r=n(93613),o=n(46199),i=r.ZP;i.Header=r.h4,i.Footer=r.$_,i.Content=r.VY,i.Sider=o.Z,t.Z=i},93613:function(e,t,n){"use strict";n.d(t,{$_:function(){return y},Gs:function(){return d},VY:function(){return b},h4:function(){return g}});var r=n(93433),o=n(4942),i=n(29439),a=n(87462),l=n(81694),s=n.n(l),c=n(72791),u=n(71929),f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o0),(0,o.Z)(n,"".concat(g,"-rtl"),"rtl"===l),n),y),S=c.useMemo((function(){return{siderHook:{addSider:function(e){m((function(t){return[].concat((0,r.Z)(t),[e])}))},removeSider:function(e){m((function(t){return t.filter((function(t){return t!==e}))}))}}}}),[]);return c.createElement(d.Provider,{value:S},c.createElement(E,(0,a.Z)({ref:t,className:C},w),b))})),m=h({suffixCls:"layout",tagName:"section",displayName:"Layout"})(v),g=h({suffixCls:"layout-header",tagName:"header",displayName:"Header"})(p),y=h({suffixCls:"layout-footer",tagName:"footer",displayName:"Footer"})(p),b=h({suffixCls:"layout-content",tagName:"main",displayName:"Content"})(p);t.ZP=m},37531:function(e,t,n){"use strict";n(38218)},40912:function(e,t,n){"use strict";n.d(t,{Z:function(){return mt}});var r,o=n(93433),i=n(87462),a=n(68944),l=n(11532),s=n(35796),c=n(29966),u=n(74165),f=n(15861),d=n(71002),h=n(1413),p=n(54164),v=n.t(p,2),m=(0,h.Z)({},v),g=m.version,y=m.render,b=m.unmountComponentAtNode;try{Number((g||"").split(".")[0])>=18&&(r=m.createRoot)}catch(gt){}function x(e){var t=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;t&&"object"===(0,d.Z)(t)&&(t.usingClientEntryPoint=e)}var E="__rc_react_root__";function w(e,t){r?function(e,t){x(!0);var n=t[E]||r(t);x(!1),n.render(e),t[E]=n}(e,t):function(e,t){y(e,t)}(e,t)}function C(e){return S.apply(this,arguments)}function S(){return(S=(0,f.Z)((0,u.Z)().mark((function e(t){return(0,u.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.resolve().then((function(){var e;null===(e=t[E])||void 0===e||e.unmount(),delete t[E]})));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function M(e){b(e)}function _(){return(_=(0,f.Z)((0,u.Z)().mark((function e(t){return(0,u.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===r){e.next=2;break}return e.abrupt("return",C(t));case 2:M(t);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var N=n(72791),O=n.t(N,2),k=n(20925),T=n(4942),P=n(81694),A=n.n(P),I=n(29439),R=n(60502),D=n(87309),L=n(2571);function Z(e){return!(!e||!e.then)}var F=function(e){var t=N.useRef(!1),n=N.useRef(null),r=(0,R.Z)(!1),o=(0,I.Z)(r,2),a=o[0],l=o[1],s=e.close,c=function(){null===s||void 0===s||s.apply(void 0,arguments)};N.useEffect((function(){var t=null;return e.autoFocus&&(t=setTimeout((function(){var e;null===(e=n.current)||void 0===e||e.focus()}))),function(){t&&clearTimeout(t)}}),[]);var u=e.type,f=e.children,d=e.prefixCls,h=e.buttonProps;return N.createElement(D.Z,(0,i.Z)({},(0,L.n)(u),{onClick:function(n){var r=e.actionFn;if(!t.current)if(t.current=!0,r){var o;if(e.emitEvent){if(o=r(n),e.quitOnNullishReturnValue&&!Z(o))return t.current=!1,void c(n)}else if(r.length)o=r(s),t.current=!1;else if(!(o=r()))return void c();!function(e){Z(e)&&(l(!0),e.then((function(){l(!1,!0),c.apply(void 0,arguments),t.current=!1}),(function(e){return l(!1,!0),t.current=!1,Promise.reject(e)})))}(o)}else c()},loading:a,prefixCls:d},h,{ref:n}),f)},j=n(29464),U=n(60732);function V(){return!("undefined"===typeof window||!window.document||!window.document.createElement)}var H={},z=[];function B(e,t){}function W(e,t){}function K(e,t,n){t||H[n]||(e(!1,n),H[n]=!0)}function G(e,t){K(B,e,t)}G.preMessage=function(e){z.push(e)},G.resetWarned=function(){H={}},G.noteOnce=function(e,t){K(W,e,t)};var Y=n(57441);function X(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:{}).mark;return e?e.startsWith("data-")?e:"data-".concat(e):ae}function ce(e){return e.attachTo?e.attachTo:document.querySelector("head")||document.body}function ue(e){return Array.from((le.get(e)||e).children).filter((function(e){return"STYLE"===e.tagName}))}function fe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!V())return null;var n=t.csp,r=t.prepend,o=t.priority,i=void 0===o?0:o,a=function(e){return"queue"===e?"prependQueue":e?"prepend":"append"}(r),l="prependQueue"===a,s=document.createElement("style");s.setAttribute(oe,a),l&&i&&s.setAttribute(ie,"".concat(i)),null!==n&&void 0!==n&&n.nonce&&(s.nonce=null===n||void 0===n?void 0:n.nonce),s.innerHTML=e;var c=ce(t),u=c.firstChild;if(r){if(l){var f=ue(c).filter((function(e){if(!["prepend","prependQueue"].includes(e.getAttribute(oe)))return!1;var t=Number(e.getAttribute(ie)||0);return i>=t}));if(f.length)return c.insertBefore(s,f[f.length-1].nextSibling),s}c.insertBefore(s,u)}else c.appendChild(s);return s}function de(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return ue(ce(t)).find((function(n){return n.getAttribute(se(t))===e}))}function he(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=de(e,t);n&&ce(t).removeChild(n)}function pe(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){var n=le.get(e);if(!n||!function(e,t){if(!e)return!1;if(e.contains)return e.contains(t);for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}(document,n)){var r=fe("",t),o=r.parentNode;le.set(e,o),e.removeChild(r)}}(ce(n),n);var r=de(t,n);if(r){var o,i,a;if(null!==(o=n.csp)&&void 0!==o&&o.nonce&&r.nonce!==(null===(i=n.csp)||void 0===i?void 0:i.nonce))r.nonce=null===(a=n.csp)||void 0===a?void 0:a.nonce;return r.innerHTML!==e&&(r.innerHTML=e),r}var l=fe(e,n);return l.setAttribute(se(n),t),l}function ve(e){var t=e.match(/^(.*)px$/),n=Number(null===t||void 0===t?void 0:t[1]);return Number.isNaN(n)?function(e){if("undefined"===typeof document)return 0;if(e||void 0===re){var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var n=document.createElement("div"),r=n.style;r.position="absolute",r.top="0",r.left="0",r.pointerEvents="none",r.visibility="hidden",r.width="200px",r.height="150px",r.overflow="hidden",n.appendChild(t),document.body.appendChild(n);var o=t.offsetWidth;n.style.overflow="scroll";var i=t.offsetWidth;o===i&&(i=n.clientWidth),document.body.removeChild(n),re=o-i}return re}():n}var me="rc-util-locker-".concat(Date.now()),ge=0;function ye(e){var t=!!e,n=N.useState((function(){return ge+=1,"".concat(me,"_").concat(ge)})),r=(0,I.Z)(n,1)[0];te((function(){if(t){var e=function(e){if("undefined"===typeof document||!e||!(e instanceof Element))return{width:0,height:0};var t=getComputedStyle(e,"::-webkit-scrollbar"),n=t.width,r=t.height;return{width:ve(n),height:ve(r)}}(document.body).width,n=document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth;pe("\nhtml body {\n overflow-y: hidden;\n ".concat(n?"width: calc(100% - ".concat(e,"px);"):"","\n}"),r)}else he(r);return function(){he(r)}}),[t,r])}var be=!1;var xe=function(e){return!1!==e&&(V()&&e?"string"===typeof e?document.querySelector(e):"function"===typeof e?e():e:null)},Ee=N.forwardRef((function(e,t){var n=e.open,r=e.autoLock,i=e.getContainer,a=(e.debug,e.autoDestroy),l=void 0===a||a,s=e.children,c=N.useState(n),u=(0,I.Z)(c,2),f=u[0],d=u[1],h=f||n;N.useEffect((function(){(l||n)&&d(n)}),[n,l]);var v=N.useState((function(){return xe(i)})),m=(0,I.Z)(v,2),g=m[0],y=m[1];N.useEffect((function(){var e=xe(i);y(null!==e&&void 0!==e?e:null)}));var b=function(e,t){var n=N.useState((function(){return V()?document.createElement("div"):null})),r=(0,I.Z)(n,1)[0],i=N.useRef(!1),a=N.useContext($),l=N.useState(ne),s=(0,I.Z)(l,2),c=s[0],u=s[1],f=a||(i.current?void 0:function(e){u((function(t){return[e].concat((0,o.Z)(t))}))});function d(){r.parentElement||document.body.appendChild(r),i.current=!0}function h(){var e;null===(e=r.parentElement)||void 0===e||e.removeChild(r),i.current=!1}return te((function(){return e?a?a(d):d():h(),h}),[e]),te((function(){c.length&&(c.forEach((function(e){return e()})),u(ne))}),[c]),[r,f]}(h&&!g),x=(0,I.Z)(b,2),E=x[0],w=x[1],C=null!==g&&void 0!==g?g:E;ye(r&&n&&V()&&(C===E||C===document.body));var S=null;s&&Q(s)&&t&&(S=s.ref);var M=q(S,t);if(!h||!V()||void 0===g)return null;var _,O=!1===C||("boolean"===typeof _&&(be=_),be),k=s;return t&&(k=N.cloneElement(s,{ref:M})),N.createElement($.Provider,{value:w},O?k:(0,p.createPortal)(k,C))}));var we=Ee,Ce={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var t=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=Ce.F1&&t<=Ce.F12)return!1;switch(t){case Ce.ALT:case Ce.CAPS_LOCK:case Ce.CONTEXT_MENU:case Ce.CTRL:case Ce.DOWN:case Ce.END:case Ce.ESC:case Ce.HOME:case Ce.INSERT:case Ce.LEFT:case Ce.MAC_FF_META:case Ce.META:case Ce.NUMLOCK:case Ce.NUM_CENTER:case Ce.PAGE_DOWN:case Ce.PAGE_UP:case Ce.PAUSE:case Ce.PRINT_SCREEN:case Ce.RIGHT:case Ce.SHIFT:case Ce.UP:case Ce.WIN_KEY:case Ce.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=Ce.ZERO&&e<=Ce.NINE)return!0;if(e>=Ce.NUM_ZERO&&e<=Ce.NUM_MULTIPLY)return!0;if(e>=Ce.A&&e<=Ce.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case Ce.SPACE:case Ce.QUESTION_MARK:case Ce.NUM_PLUS:case Ce.NUM_MINUS:case Ce.NUM_PERIOD:case Ce.NUM_DIVISION:case Ce.SEMICOLON:case Ce.DASH:case Ce.EQUALS:case Ce.COMMA:case Ce.PERIOD:case Ce.SLASH:case Ce.APOSTROPHE:case Ce.SINGLE_QUOTE:case Ce.OPEN_SQUARE_BRACKET:case Ce.BACKSLASH:case Ce.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},Se=Ce;var Me=0;function _e(e){var t=N.useState("ssr-id"),n=(0,I.Z)(t,2),r=n[0],o=n[1],i=(0,h.Z)({},O).useId,a=null===i||void 0===i?void 0:i();return N.useEffect((function(){if(!i){var e=Me;Me+=1,o("rc_unique_".concat(e))}}),[]),e||(a||r)}function Ne(e,t){if(!e)return!1;if(e.contains)return e.contains(t);for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}var Oe="".concat("accept acceptCharset accessKey action allowFullScreen allowTransparency\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\n charSet checked classID className colSpan cols content contentEditable contextMenu\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\n mediaGroup method min minLength multiple muted name noValidate nonce open\n optimum pattern placeholder poster preload radioGroup readOnly rel required\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\n summary tabIndex target title type useMap value width wmode wrap"," ").concat("onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError").split(/[\s\n]+/),ke="aria-",Te="data-";function Pe(e,t){return 0===e.indexOf(t)}var Ae=n(53276);function Ie(e){var t=e.prefixCls,n=e.style,r=e.visible,o=e.maskProps,a=e.motionName;return N.createElement(Ae.ZP,{key:"mask",visible:r,motionName:a,leavedClassName:"".concat(t,"-mask-hidden")},(function(e,r){var a=e.className,l=e.style;return N.createElement("div",(0,i.Z)({ref:r,style:(0,h.Z)((0,h.Z)({},l),n),className:A()("".concat(t,"-mask"),a)},o))}))}function Re(e,t,n){var r=t;return!r&&n&&(r="".concat(e,"-").concat(n)),r}function De(e,t){var n=e["page".concat(t?"Y":"X","Offset")],r="scroll".concat(t?"Top":"Left");if("number"!==typeof n){var o=e.document;"number"!==typeof(n=o.documentElement[r])&&(n=o.body[r])}return n}var Le=N.memo((function(e){return e.children}),(function(e,t){return!t.shouldUpdate})),Ze={width:0,height:0,overflow:"hidden",outline:"none"};var Fe=N.forwardRef((function(e,t){var n=e.prefixCls,r=e.className,o=e.style,a=e.title,l=e.ariaId,s=e.footer,c=e.closable,u=e.closeIcon,f=e.onClose,d=e.children,p=e.bodyStyle,v=e.bodyProps,m=e.modalRender,g=e.onMouseDown,y=e.onMouseUp,b=e.holderRef,x=e.visible,E=e.forceRender,w=e.width,C=e.height,S=(0,N.useRef)(),M=(0,N.useRef)();N.useImperativeHandle(t,(function(){return{focus:function(){var e;null===(e=S.current)||void 0===e||e.focus()},changeActive:function(e){var t=document.activeElement;e&&t===M.current?S.current.focus():e||t!==S.current||M.current.focus()}}}));var _,O,k,T={};void 0!==w&&(T.width=w),void 0!==C&&(T.height=C),s&&(_=N.createElement("div",{className:"".concat(n,"-footer")},s)),a&&(O=N.createElement("div",{className:"".concat(n,"-header")},N.createElement("div",{className:"".concat(n,"-title"),id:l},a))),c&&(k=N.createElement("button",{type:"button",onClick:f,"aria-label":"Close",className:"".concat(n,"-close")},u||N.createElement("span",{className:"".concat(n,"-close-x")})));var P=N.createElement("div",{className:"".concat(n,"-content")},k,O,N.createElement("div",(0,i.Z)({className:"".concat(n,"-body"),style:p},v),d),_);return N.createElement("div",{key:"dialog-element",role:"dialog","aria-labelledby":a?l:null,"aria-modal":"true",ref:b,style:(0,h.Z)((0,h.Z)({},o),T),className:A()(n,r),onMouseDown:g,onMouseUp:y},N.createElement("div",{tabIndex:0,ref:S,style:Ze,"aria-hidden":"true"}),N.createElement(Le,{shouldUpdate:x||E},m?m(P):P),N.createElement("div",{tabIndex:0,ref:M,style:Ze,"aria-hidden":"true"}))})),je=N.forwardRef((function(e,t){var n=e.prefixCls,r=e.title,o=e.style,a=e.className,l=e.visible,s=e.forceRender,c=e.destroyOnClose,u=e.motionName,f=e.ariaId,d=e.onVisibleChanged,p=e.mousePosition,v=(0,N.useRef)(),m=N.useState(),g=(0,I.Z)(m,2),y=g[0],b=g[1],x={};function E(){var e=function(e){var t=e.getBoundingClientRect(),n={left:t.left,top:t.top},r=e.ownerDocument,o=r.defaultView||r.parentWindow;return n.left+=De(o),n.top+=De(o,!0),n}(v.current);b(p?"".concat(p.x-e.left,"px ").concat(p.y-e.top,"px"):"")}return y&&(x.transformOrigin=y),N.createElement(Ae.ZP,{visible:l,onVisibleChanged:d,onAppearPrepare:E,onEnterPrepare:E,forceRender:s,motionName:u,removeOnLeave:c,ref:v},(function(l,s){var c=l.className,u=l.style;return N.createElement(Fe,(0,i.Z)({},e,{ref:t,title:r,ariaId:f,prefixCls:n,holderRef:s,style:(0,h.Z)((0,h.Z)((0,h.Z)({},u),o),x),className:A()(a,c)}))}))}));je.displayName="Content";var Ue=je;function Ve(e){var t=e.prefixCls,n=void 0===t?"rc-dialog":t,r=e.zIndex,o=e.visible,a=void 0!==o&&o,l=e.keyboard,s=void 0===l||l,c=e.focusTriggerAfterClose,u=void 0===c||c,f=e.wrapStyle,d=e.wrapClassName,p=e.wrapProps,v=e.onClose,m=e.afterClose,g=e.transitionName,y=e.animation,b=e.closable,x=void 0===b||b,E=e.mask,w=void 0===E||E,C=e.maskTransitionName,S=e.maskAnimation,M=e.maskClosable,_=void 0===M||M,O=e.maskStyle,k=e.maskProps,T=e.rootClassName,P=(0,N.useRef)(),R=(0,N.useRef)(),D=(0,N.useRef)(),L=N.useState(a),Z=(0,I.Z)(L,2),F=Z[0],j=Z[1],U=_e();function V(e){null===v||void 0===v||v(e)}var H=(0,N.useRef)(!1),z=(0,N.useRef)(),B=null;return _&&(B=function(e){H.current?H.current=!1:R.current===e.target&&V(e)}),(0,N.useEffect)((function(){a&&(j(!0),Ne(R.current,document.activeElement)||(P.current=document.activeElement))}),[a]),(0,N.useEffect)((function(){return function(){clearTimeout(z.current)}}),[]),N.createElement("div",(0,i.Z)({className:A()("".concat(n,"-root"),T)},function(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t=!1===n?{aria:!0,data:!0,attr:!0}:!0===n?{aria:!0}:(0,h.Z)({},n);var r={};return Object.keys(e).forEach((function(n){(t.aria&&("role"===n||Pe(n,ke))||t.data&&Pe(n,Te)||t.attr&&Oe.includes(n))&&(r[n]=e[n])})),r}(e,{data:!0})),N.createElement(Ie,{prefixCls:n,visible:w&&a,motionName:Re(n,C,S),style:(0,h.Z)({zIndex:r},O),maskProps:k}),N.createElement("div",(0,i.Z)({tabIndex:-1,onKeyDown:function(e){if(s&&e.keyCode===Se.ESC)return e.stopPropagation(),void V(e);a&&e.keyCode===Se.TAB&&D.current.changeActive(!e.shiftKey)},className:A()("".concat(n,"-wrap"),d),ref:R,onClick:B,style:(0,h.Z)((0,h.Z)({zIndex:r},f),{},{display:F?null:"none"})},p),N.createElement(Ue,(0,i.Z)({},e,{onMouseDown:function(){clearTimeout(z.current),H.current=!0},onMouseUp:function(){z.current=setTimeout((function(){H.current=!1}))},ref:D,closable:x,ariaId:U,prefixCls:n,visible:a&&F,onClose:V,onVisibleChanged:function(e){if(e)!function(){var e;Ne(R.current,document.activeElement)||null===(e=D.current)||void 0===e||e.focus()}();else{if(j(!1),w&&P.current&&u){try{P.current.focus({preventScroll:!0})}catch(gt){}P.current=null}F&&(null===m||void 0===m||m())}},motionName:Re(n,g,y)}))))}var He=function(e){var t=e.visible,n=e.getContainer,r=e.forceRender,o=e.destroyOnClose,a=void 0!==o&&o,l=e.afterClose,s=N.useState(t),c=(0,I.Z)(s,2),u=c[0],f=c[1];return N.useEffect((function(){t&&f(!0)}),[t]),r||!a||u?N.createElement(we,{open:t||r||u,autoDestroy:!1,getContainer:n,autoLock:t||u},N.createElement(Ve,(0,i.Z)({},e,{destroyOnClose:a,afterClose:function(){null===l||void 0===l||l(),f(!1)}}))):null};He.displayName="Dialog";var ze,Be=He,We=n(71929),Ke=n(81669),Ge=n(93486),Ye=n(70011),Xe=n(96096),qe=n(72073),Qe=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o=k.F1&&t<=k.F12)return!1;switch(t){case k.ALT:case k.CAPS_LOCK:case k.CONTEXT_MENU:case k.CTRL:case k.DOWN:case k.END:case k.ESC:case k.HOME:case k.INSERT:case k.LEFT:case k.MAC_FF_META:case k.META:case k.NUMLOCK:case k.NUM_CENTER:case k.PAGE_DOWN:case k.PAGE_UP:case k.PAUSE:case k.PRINT_SCREEN:case k.RIGHT:case k.SHIFT:case k.UP:case k.WIN_KEY:case k.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=k.ZERO&&e<=k.NINE)return!0;if(e>=k.NUM_ZERO&&e<=k.NUM_MULTIPLY)return!0;if(e>=k.A&&e<=k.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case k.SPACE:case k.QUESTION_MARK:case k.NUM_PLUS:case k.NUM_MINUS:case k.NUM_PERIOD:case k.NUM_DIVISION:case k.SEMICOLON:case k.DASH:case k.EQUALS:case k.COMMA:case k.PERIOD:case k.SLASH:case k.APOSTROPHE:case k.SINGLE_QUOTE:case k.OPEN_SQUARE_BRACKET:case k.BACKSLASH:case k.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},T=k,P=n(57441);function A(e,t,n){var r=d.useRef({});return"value"in r.current&&!n(r.current.condition,t)||(r.current.value=e(),r.current.condition=t),r.current.value}function I(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:250,t=d.useRef(null),n=d.useRef(null);return d.useEffect((function(){return function(){window.clearTimeout(n.current)}}),[]),[function(){return t.current},function(r){(r||null===t.current)&&(t.current=r),window.clearTimeout(n.current),n.current=window.setTimeout((function(){t.current=null}),e)}]}var L="".concat("accept acceptCharset accessKey action allowFullScreen allowTransparency\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\n charSet checked classID className colSpan cols content contentEditable contextMenu\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\n mediaGroup method min minLength multiple muted name noValidate nonce open\n optimum pattern placeholder poster preload radioGroup readOnly rel required\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\n summary tabIndex target title type useMap value width wmode wrap"," ").concat("onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError").split(/[\s\n]+/);function Z(e,t){return 0===e.indexOf(t)}function F(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t=!1===n?{aria:!0,data:!0,attr:!0}:!0===n?{aria:!0}:(0,s.Z)({},n);var r={};return Object.keys(e).forEach((function(n){(t.aria&&("role"===n||Z(n,"aria-"))||t.data&&Z(n,"data-")||t.attr&&L.includes(n))&&(r[n]=e[n])})),r}var j=n(84328),U=function(e){var t,n=e.className,r=e.customizeIcon,o=e.customizeIconProps,i=e.onMouseDown,l=e.onClick,s=e.children;return t="function"===typeof r?r(o):r,d.createElement("span",{className:n,onMouseDown:function(e){e.preventDefault(),i&&i(e)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:l,"aria-hidden":!0},void 0!==t?t:d.createElement("span",{className:a()(n.split(/\s+/).map((function(e){return"".concat(e,"-icon")})))},s))},V=function(e,t){var n,r,o=e.prefixCls,i=e.id,l=e.inputElement,c=e.disabled,u=e.tabIndex,f=e.autoFocus,h=e.autoComplete,p=e.editable,v=e.activeDescendantId,m=e.value,g=e.maxLength,y=e.onKeyDown,b=e.onMouseDown,x=e.onChange,E=e.onPaste,w=e.onCompositionStart,C=e.onCompositionEnd,S=e.open,M=e.attrs,_=l||d.createElement("input",null),N=_,O=N.ref,k=N.props,T=k.onKeyDown,P=k.onChange,A=k.onMouseDown,R=k.onCompositionStart,D=k.onCompositionEnd,L=k.style;return _.props,_=d.cloneElement(_,(0,s.Z)((0,s.Z)((0,s.Z)({type:"search"},k),{},{id:i,ref:I(t,O),disabled:c,tabIndex:u,autoComplete:h||"off",autoFocus:f,className:a()("".concat(o,"-selection-search-input"),null===(n=_)||void 0===n||null===(r=n.props)||void 0===r?void 0:r.className),role:"combobox","aria-expanded":S,"aria-haspopup":"listbox","aria-owns":"".concat(i,"_list"),"aria-autocomplete":"list","aria-controls":"".concat(i,"_list"),"aria-activedescendant":v},M),{},{value:p?m:"",maxLength:g,readOnly:!p,unselectable:p?null:"on",style:(0,s.Z)((0,s.Z)({},L),{},{opacity:p?null:0}),onKeyDown:function(e){y(e),T&&T(e)},onMouseDown:function(e){b(e),A&&A(e)},onChange:function(e){x(e),P&&P(e)},onCompositionStart:function(e){w(e),R&&R(e)},onCompositionEnd:function(e){C(e),D&&D(e)},onPaste:E}))},H=d.forwardRef(V);H.displayName="Input";var z=H;function B(e){return Array.isArray(e)?e:void 0!==e?[e]:[]}var W="undefined"!==typeof window&&window.document&&window.document.documentElement;function K(e){return["string","number"].includes((0,f.Z)(e))}function G(e){var t=void 0;return e&&(K(e.title)?t=e.title.toString():K(e.label)&&(t=e.label.toString())),t}function Y(e){var t;return null!==(t=e.key)&&void 0!==t?t:e.value}var X=function(e){e.preventDefault(),e.stopPropagation()},q=function(e){var t,n,o=e.id,i=e.prefixCls,l=e.values,s=e.open,u=e.searchValue,f=e.autoClearSearchValue,h=e.inputRef,p=e.placeholder,v=e.disabled,m=e.mode,g=e.showSearch,y=e.autoFocus,b=e.autoComplete,x=e.activeDescendantId,E=e.tabIndex,w=e.removeIcon,C=e.maxTagCount,S=e.maxTagTextLength,M=e.maxTagPlaceholder,_=void 0===M?function(e){return"+ ".concat(e.length," ...")}:M,N=e.tagRender,O=e.onToggleOpen,k=e.onRemove,T=e.onInputChange,P=e.onInputPaste,A=e.onInputKeyDown,I=e.onInputMouseDown,R=e.onInputCompositionStart,D=e.onInputCompositionEnd,L=d.useRef(null),Z=(0,d.useState)(0),V=(0,c.Z)(Z,2),H=V[0],B=V[1],K=(0,d.useState)(!1),q=(0,c.Z)(K,2),Q=q[0],$=q[1],J="".concat(i,"-selection"),ee=s||"multiple"===m&&!1===f||"tags"===m?u:"",te="tags"===m||"multiple"===m&&!1===f||g&&(s||Q);function ne(e,t,n,o,i){return d.createElement("span",{className:a()("".concat(J,"-item"),(0,r.Z)({},"".concat(J,"-item-disabled"),n)),title:G(e)},d.createElement("span",{className:"".concat(J,"-item-content")},t),o&&d.createElement(U,{className:"".concat(J,"-item-remove"),onMouseDown:X,onClick:i,customizeIcon:w},"\xd7"))}t=function(){B(L.current.scrollWidth)},n=[ee],W?d.useLayoutEffect(t,n):d.useEffect(t,n);var re=d.createElement("div",{className:"".concat(J,"-search"),style:{width:H},onFocus:function(){$(!0)},onBlur:function(){$(!1)}},d.createElement(z,{ref:h,open:s,prefixCls:i,id:o,inputElement:null,disabled:v,autoFocus:y,autoComplete:b,editable:te,activeDescendantId:x,value:ee,onKeyDown:A,onMouseDown:I,onChange:T,onPaste:P,onCompositionStart:R,onCompositionEnd:D,tabIndex:E,attrs:F(e,!0)}),d.createElement("span",{ref:L,className:"".concat(J,"-search-mirror"),"aria-hidden":!0},ee,"\xa0")),oe=d.createElement(j.Z,{prefixCls:"".concat(J,"-overflow"),data:l,renderItem:function(e){var t=e.disabled,n=e.label,r=e.value,o=!v&&!t,i=n;if("number"===typeof S&&("string"===typeof n||"number"===typeof n)){var a=String(i);a.length>S&&(i="".concat(a.slice(0,S),"..."))}var l=function(t){t&&t.stopPropagation(),k(e)};return"function"===typeof N?function(e,t,n,r,o){return d.createElement("span",{onMouseDown:function(e){X(e),O(!s)}},N({label:t,value:e,disabled:n,closable:r,onClose:o}))}(r,i,t,o,l):ne(e,i,t,o,l)},renderRest:function(e){var t="function"===typeof _?_(e):_;return ne({title:t},t,!1)},suffix:re,itemKey:Y,maxCount:C});return d.createElement(d.Fragment,null,oe,!l.length&&!ee&&d.createElement("span",{className:"".concat(J,"-placeholder")},p))},Q=function(e){var t=e.inputElement,n=e.prefixCls,r=e.id,o=e.inputRef,i=e.disabled,a=e.autoFocus,l=e.autoComplete,s=e.activeDescendantId,u=e.mode,f=e.open,h=e.values,p=e.placeholder,v=e.tabIndex,m=e.showSearch,g=e.searchValue,y=e.activeValue,b=e.maxLength,x=e.onInputKeyDown,E=e.onInputMouseDown,w=e.onInputChange,C=e.onInputPaste,S=e.onInputCompositionStart,M=e.onInputCompositionEnd,_=d.useState(!1),N=(0,c.Z)(_,2),O=N[0],k=N[1],T="combobox"===u,P=T||m,A=h[0],I=g||"";T&&y&&!O&&(I=y),d.useEffect((function(){T&&k(!1)}),[T,y]);var R=!("combobox"!==u&&!f&&!m)&&!!I,D=G(A);return d.createElement(d.Fragment,null,d.createElement("span",{className:"".concat(n,"-selection-search")},d.createElement(z,{ref:o,prefixCls:n,id:r,open:f,inputElement:t,disabled:i,autoFocus:a,autoComplete:l,editable:P,activeDescendantId:s,value:I,onKeyDown:x,onMouseDown:E,onChange:function(e){k(!0),w(e)},onPaste:C,onCompositionStart:S,onCompositionEnd:M,tabIndex:v,attrs:F(e,!0),maxLength:T?b:void 0})),!T&&A?d.createElement("span",{className:"".concat(n,"-selection-item"),title:D,style:R?{visibility:"hidden"}:void 0},A.label):null,function(){if(A)return null;var e=R?{visibility:"hidden"}:void 0;return d.createElement("span",{className:"".concat(n,"-selection-placeholder"),style:e},p)}())};var $=function(e,t){var n=(0,d.useRef)(null),r=(0,d.useRef)(!1),i=e.prefixCls,a=e.open,l=e.mode,s=e.showSearch,u=e.tokenWithEnter,f=e.autoClearSearchValue,h=e.onSearch,p=e.onSearchSubmit,v=e.onToggleOpen,m=e.onInputKeyDown,g=e.domRef;d.useImperativeHandle(t,(function(){return{focus:function(){n.current.focus()},blur:function(){n.current.blur()}}}));var y=D(0),b=(0,c.Z)(y,2),x=b[0],E=b[1],w=(0,d.useRef)(null),C=function(e){!1!==h(e,!0,r.current)&&v(!0)},S={inputRef:n,onInputKeyDown:function(e){var t,n=e.which;n!==T.UP&&n!==T.DOWN||e.preventDefault(),m&&m(e),n!==T.ENTER||"tags"!==l||r.current||a||null===p||void 0===p||p(e.target.value),t=n,[T.ESC,T.SHIFT,T.BACKSPACE,T.TAB,T.WIN_KEY,T.ALT,T.META,T.WIN_KEY_RIGHT,T.CTRL,T.SEMICOLON,T.EQUALS,T.CAPS_LOCK,T.CONTEXT_MENU,T.F1,T.F2,T.F3,T.F4,T.F5,T.F6,T.F7,T.F8,T.F9,T.F10,T.F11,T.F12].includes(t)||v(!0)},onInputMouseDown:function(){E(!0)},onInputChange:function(e){var t=e.target.value;if(u&&w.current&&/[\r\n]/.test(w.current)){var n=w.current.replace(/[\r\n]+$/,"").replace(/\r\n/g," ").replace(/[\r\n]/g," ");t=t.replace(n,w.current)}w.current=null,C(t)},onInputPaste:function(e){var t=e.clipboardData.getData("text");w.current=t},onInputCompositionStart:function(){r.current=!0},onInputCompositionEnd:function(e){r.current=!1,"combobox"!==l&&C(e.target.value)}},M="multiple"===l||"tags"===l?d.createElement(q,(0,o.Z)({},e,S)):d.createElement(Q,(0,o.Z)({},e,S));return d.createElement("div",{ref:g,className:"".concat(i,"-selector"),onClick:function(e){e.target!==n.current&&(void 0!==document.body.style.msTouchAction?setTimeout((function(){n.current.focus()})):n.current.focus())},onMouseDown:function(e){var t=x();e.target===n.current||t||"combobox"===l||e.preventDefault(),("combobox"===l||s&&t)&&a||(a&&!1!==f&&h("",!0,!1),v())}},M)},J=d.forwardRef($);J.displayName="Selector";var ee=J,te=n(94869),ne=["prefixCls","disabled","visible","children","popupElement","containerWidth","animation","transitionName","dropdownStyle","dropdownClassName","direction","placement","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","getPopupContainer","empty","getTriggerDOMNode","onPopupVisibleChange","onPopupMouseEnter"],re=function(e,t){var n=e.prefixCls,i=(e.disabled,e.visible),l=e.children,c=e.popupElement,f=e.containerWidth,h=e.animation,p=e.transitionName,v=e.dropdownStyle,m=e.dropdownClassName,g=e.direction,y=void 0===g?"ltr":g,b=e.placement,x=e.dropdownMatchSelectWidth,E=e.dropdownRender,w=e.dropdownAlign,C=e.getPopupContainer,S=e.empty,M=e.getTriggerDOMNode,_=e.onPopupVisibleChange,N=e.onPopupMouseEnter,O=(0,u.Z)(e,ne),k="".concat(n,"-dropdown"),T=c;E&&(T=E(c));var P=d.useMemo((function(){return function(e){var t=!0===e?0:1;return{bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:t,adjustY:1}},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:t,adjustY:1}},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:t,adjustY:1}},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:t,adjustY:1}}}}(x)}),[x]),A=h?"".concat(k,"-").concat(h):p,I=d.useRef(null);d.useImperativeHandle(t,(function(){return{getPopupElement:function(){return I.current}}}));var R=(0,s.Z)({minWidth:f},v);return"number"===typeof x?R.width=x:x&&(R.width=f),d.createElement(te.Z,(0,o.Z)({},O,{showAction:_?["click"]:[],hideAction:_?["click"]:[],popupPlacement:b||("rtl"===y?"bottomRight":"bottomLeft"),builtinPlacements:P,prefixCls:k,popupTransitionName:A,popup:d.createElement("div",{ref:I,onMouseEnter:N},T),popupAlign:w,popupVisible:i,getPopupContainer:C,popupClassName:a()(m,(0,r.Z)({},"".concat(k,"-empty"),S)),popupStyle:R,getTriggerDOMNode:M,onPopupVisibleChange:_}),l)},oe=d.forwardRef(re);oe.displayName="SelectTrigger";var ie=oe,ae=n(84506);function le(e,t){var n,r=e.key;return"value"in e&&(n=e.value),null!==r&&void 0!==r?r:void 0!==n?n:"rc-index-key-".concat(t)}function se(e,t){var n=e||{};return{label:n.label||(t?"children":"label"),value:n.value||"value",options:n.options||"options"}}function ce(e){var t=(0,s.Z)({},e);return"props"in t||Object.defineProperty(t,"props",{get:function(){return O(!1,"Return type is option instead of Option instance. Please read value directly instead of reading from `props`."),t}}),t}var ue=["id","prefixCls","className","showSearch","tagRender","direction","omitDomProps","displayValues","onDisplayValuesChange","emptyOptions","notFoundContent","onClear","mode","disabled","loading","getInputElement","getRawInputElement","open","defaultOpen","onDropdownVisibleChange","activeValue","onActiveValueChange","activeDescendantId","searchValue","autoClearSearchValue","onSearch","onSearchSplit","tokenSeparators","allowClear","showArrow","inputIcon","clearIcon","OptionList","animation","transitionName","dropdownStyle","dropdownClassName","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","placement","getPopupContainer","showAction","onFocus","onBlur","onKeyUp","onKeyDown","onMouseDown"],fe=["value","onChange","removeIcon","placeholder","autoFocus","maxTagCount","maxTagTextLength","maxTagPlaceholder","choiceTransitionName","onInputKeyDown","onPopupScroll","tabIndex"];function de(e){return"tags"===e||"multiple"===e}var he=d.forwardRef((function(e,t){var n,i,h=e.id,p=e.prefixCls,v=e.className,m=e.showSearch,g=e.tagRender,b=e.direction,x=e.omitDomProps,w=e.displayValues,C=e.onDisplayValuesChange,S=e.emptyOptions,M=e.notFoundContent,_=void 0===M?"Not Found":M,N=e.onClear,O=e.mode,k=e.disabled,P=e.loading,L=e.getInputElement,Z=e.getRawInputElement,F=e.open,j=e.defaultOpen,V=e.onDropdownVisibleChange,H=e.activeValue,z=e.onActiveValueChange,B=e.activeDescendantId,W=e.searchValue,K=e.autoClearSearchValue,G=e.onSearch,Y=e.onSearchSplit,X=e.tokenSeparators,q=e.allowClear,Q=e.showArrow,$=e.inputIcon,J=e.clearIcon,te=e.OptionList,ne=e.animation,re=e.transitionName,oe=e.dropdownStyle,le=e.dropdownClassName,se=e.dropdownMatchSelectWidth,ce=e.dropdownRender,he=e.dropdownAlign,pe=e.placement,ve=e.getPopupContainer,me=e.showAction,ge=void 0===me?[]:me,ye=e.onFocus,be=e.onBlur,xe=e.onKeyUp,Ee=e.onKeyDown,we=e.onMouseDown,Ce=(0,u.Z)(e,ue),Se=de(O),Me=(void 0!==m?m:Se)||"combobox"===O,_e=(0,s.Z)({},Ce);fe.forEach((function(e){delete _e[e]})),null===x||void 0===x||x.forEach((function(e){delete _e[e]}));var Ne=d.useState(!1),Oe=(0,c.Z)(Ne,2),ke=Oe[0],Te=Oe[1];d.useEffect((function(){Te(function(){if("undefined"===typeof navigator||"undefined"===typeof window)return!1;var e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(null===e||void 0===e?void 0:e.substr(0,4))}())}),[]);var Pe=d.useRef(null),Ae=d.useRef(null),Ie=d.useRef(null),Re=d.useRef(null),De=d.useRef(null),Le=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=d.useState(!1),n=(0,c.Z)(t,2),r=n[0],o=n[1],i=d.useRef(null),a=function(){window.clearTimeout(i.current)};return d.useEffect((function(){return a}),[]),[r,function(t,n){a(),i.current=window.setTimeout((function(){o(t),n&&n()}),e)},a]}(),Ze=(0,c.Z)(Le,3),Fe=Ze[0],je=Ze[1],Ue=Ze[2];d.useImperativeHandle(t,(function(){var e,t;return{focus:null===(e=Re.current)||void 0===e?void 0:e.focus,blur:null===(t=Re.current)||void 0===t?void 0:t.blur,scrollTo:function(e){var t;return null===(t=De.current)||void 0===t?void 0:t.scrollTo(e)}}}));var Ve=d.useMemo((function(){var e;if("combobox"!==O)return W;var t=null===(e=w[0])||void 0===e?void 0:e.value;return"string"===typeof t||"number"===typeof t?String(t):""}),[W,O,w]),He="combobox"===O&&"function"===typeof L&&L()||null,ze="function"===typeof Z&&Z(),Be=function(){for(var e=arguments.length,t=new Array(e),n=0;n1,s.reduce((function(t,n){return[].concat((0,l.Z)(t),(0,l.Z)(e(n,a)))}),[]).filter((function(e){return e}))}(e,t);return n?r:null}(e,X);return"combobox"!==O&&i&&(o="",null===Y||void 0===Y||Y(i),$e(!1),r=!1),G&&Ve!==o&&G(o,{source:t?"typing":"effect"}),r};d.useEffect((function(){Xe||Se||"combobox"===O||et("",!1,!1)}),[Xe]),d.useEffect((function(){Ge&&k&&Ye(!1),k&&je(!1)}),[k]);var tt=D(),nt=(0,c.Z)(tt,2),rt=nt[0],ot=nt[1],it=d.useRef(!1),at=[];d.useEffect((function(){return function(){at.forEach((function(e){return clearTimeout(e)})),at.splice(0,at.length)}}),[]);var lt,st=d.useState(null),ct=(0,c.Z)(st,2),ut=ct[0],ft=ct[1],dt=d.useState({}),ht=(0,c.Z)(dt,2)[1];y((function(){if(Qe){var e,t=Math.ceil(null===(e=Pe.current)||void 0===e?void 0:e.offsetWidth);ut===t||Number.isNaN(t)||ft(t)}}),[Qe]),ze&&(lt=function(e){$e(e)}),function(e,t,n,r){var o=d.useRef(null);o.current={open:t,triggerOpen:n,customizedTrigger:r},d.useEffect((function(){function t(t){var n;if(null===(n=o.current)||void 0===n||!n.customizedTrigger){var r=t.target;r.shadowRoot&&t.composed&&(r=t.composedPath()[0]||r),o.current.open&&e().filter((function(e){return e})).every((function(e){return!e.contains(r)&&e!==r}))&&o.current.triggerOpen(!1)}}return window.addEventListener("mousedown",t),function(){return window.removeEventListener("mousedown",t)}}),[])}((function(){var e;return[Pe.current,null===(e=Ie.current)||void 0===e?void 0:e.getPopupElement()]}),Qe,$e,!!ze);var pt,vt,mt=d.useMemo((function(){return(0,s.Z)((0,s.Z)({},e),{},{notFoundContent:_,open:Xe,triggerOpen:Qe,id:h,showSearch:Me,multiple:Se,toggleOpen:$e})}),[e,_,Qe,Xe,h,Me,Se,$e]),gt=void 0!==Q?Q:P||!Se&&"combobox"!==O;gt&&(pt=d.createElement(U,{className:a()("".concat(p,"-arrow"),(0,r.Z)({},"".concat(p,"-arrow-loading"),P)),customizeIcon:$,customizeIconProps:{loading:P,searchValue:Ve,open:Xe,focused:Fe,showSearch:Me}}));k||!q||!w.length&&!Ve||"combobox"===O&&""===Ve||(vt=d.createElement(U,{className:"".concat(p,"-clear"),onMouseDown:function(){var e;null===N||void 0===N||N(),null===(e=Re.current)||void 0===e||e.focus(),C([],{type:"clear",values:w}),et("",!1,!1)},customizeIcon:J},"\xd7"));var yt,bt=d.createElement(te,{ref:De}),xt=a()(p,v,(i={},(0,r.Z)(i,"".concat(p,"-focused"),Fe),(0,r.Z)(i,"".concat(p,"-multiple"),Se),(0,r.Z)(i,"".concat(p,"-single"),!Se),(0,r.Z)(i,"".concat(p,"-allow-clear"),q),(0,r.Z)(i,"".concat(p,"-show-arrow"),gt),(0,r.Z)(i,"".concat(p,"-disabled"),k),(0,r.Z)(i,"".concat(p,"-loading"),P),(0,r.Z)(i,"".concat(p,"-open"),Xe),(0,r.Z)(i,"".concat(p,"-customize-input"),He),(0,r.Z)(i,"".concat(p,"-show-search"),Me),i)),Et=d.createElement(ie,{ref:Ie,disabled:k,prefixCls:p,visible:Qe,popupElement:bt,containerWidth:ut,animation:ne,transitionName:re,dropdownStyle:oe,dropdownClassName:le,direction:b,dropdownMatchSelectWidth:se,dropdownRender:ce,dropdownAlign:he,placement:pe,getPopupContainer:ve,empty:S,getTriggerDOMNode:function(){return Ae.current},onPopupVisibleChange:lt,onPopupMouseEnter:function(){ht({})}},ze?d.cloneElement(ze,{ref:Be}):d.createElement(ee,(0,o.Z)({},e,{domRef:Ae,prefixCls:p,inputElement:He,ref:Re,id:h,showSearch:Me,autoClearSearchValue:K,mode:O,activeDescendantId:B,tagRender:g,values:w,open:Xe,onToggleOpen:$e,activeValue:H,searchValue:Ve,onSearch:et,onSearchSubmit:function(e){e&&e.trim()&&G(e,{source:"submit"})},onRemove:function(e){var t=w.filter((function(t){return t!==e}));C(t,{type:"remove",values:[e]})},tokenWithEnter:Je})));return yt=ze?Et:d.createElement("div",(0,o.Z)({className:xt},_e,{ref:Pe,onMouseDown:function(e){var t,n=e.target,r=null===(t=Ie.current)||void 0===t?void 0:t.getPopupElement();if(r&&r.contains(n)){var o=setTimeout((function(){var e,t=at.indexOf(o);-1!==t&&at.splice(t,1),Ue(),ke||r.contains(document.activeElement)||null===(e=Re.current)||void 0===e||e.focus()}));at.push(o)}for(var i=arguments.length,a=new Array(i>1?i-1:0),l=1;l=0;a-=1){var s=o[a];if(!s.disabled){o.splice(a,1),i=s;break}}i&&C(o,{type:"remove",values:[i]})}for(var c=arguments.length,u=new Array(c>1?c-1:0),f=1;f1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:{},n=[];return d.Children.forEach(e,(function(e){(void 0!==e&&null!==e||t.keepEmpty)&&(Array.isArray(e)?n=n.concat(be(e)):(0,P.isFragment)(e)&&e.props?n=n.concat(be(e.props.children,t)):n.push(e))})),n}var xe=["children","value"],Ee=["children"];function we(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return be(e).map((function(e,n){if(!d.isValidElement(e)||!e.type)return null;var r=e,o=r.type.isSelectOptGroup,i=r.key,a=r.props,l=a.children,c=(0,u.Z)(a,Ee);return t||!o?function(e){var t=e,n=t.key,r=t.props,o=r.children,i=r.value,a=(0,u.Z)(r,xe);return(0,s.Z)({key:n,value:void 0!==i?i:n,children:o},a)}(e):(0,s.Z)((0,s.Z)({key:"__RC_SELECT_GRP__".concat(null===i?n:i,"__"),label:i},c),{},{options:we(l)})})).filter((function(e){return e}))}function Ce(e){var t=d.useRef();t.current=e;var n=d.useCallback((function(){return t.current.apply(t,arguments)}),[]);return n}var Se=function(){return null};Se.isSelectOptGroup=!0;var Me=Se,_e=function(){return null};_e.isSelectOption=!0;var Ne=_e;var Oe=n(54164),ke=n(78039),Te=d.forwardRef((function(e,t){var n,i=e.height,l=e.offsetY,c=e.offsetX,u=e.children,f=e.prefixCls,h=e.onInnerResize,p=e.innerProps,v=e.rtl,m=e.extra,g={},y={display:"flex",flexDirection:"column"};void 0!==l&&(g={height:i,position:"relative",overflow:"hidden"},y=(0,s.Z)((0,s.Z)({},y),{},(n={transform:"translateY(".concat(l,"px)")},(0,r.Z)(n,v?"marginRight":"marginLeft",-c),(0,r.Z)(n,"position","absolute"),(0,r.Z)(n,"left",0),(0,r.Z)(n,"right",0),(0,r.Z)(n,"top",0),n)));return d.createElement("div",{style:g},d.createElement(ke.Z,{onResize:function(e){e.offsetHeight&&h&&h()}},d.createElement("div",(0,o.Z)({style:y,className:a()((0,r.Z)({},"".concat(f,"-holder-inner"),f)),ref:t},p),u,m)))}));Te.displayName="Filler";var Pe=Te,Ae=function(e){return+setTimeout(e,16)},Ie=function(e){return clearTimeout(e)};"undefined"!==typeof window&&"requestAnimationFrame"in window&&(Ae=function(e){return window.requestAnimationFrame(e)},Ie=function(e){return window.cancelAnimationFrame(e)});var Re=0,De=new Map;function Le(e){De.delete(e)}var Ze=function(e){var t=Re+=1;return function n(r){if(0===r)Le(t),e();else{var o=Ae((function(){n(r-1)}));De.set(t,o)}}(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1),t};Ze.cancel=function(e){var t=De.get(e);return Le(t),Ie(t)};var Fe=Ze;function je(e,t){return("touches"in e?e.touches[0]:e)[t?"pageX":"pageY"]}var Ue=d.forwardRef((function(e,t){var n,o=e.prefixCls,i=e.rtl,l=e.scrollOffset,s=e.scrollRange,u=e.onStartMove,f=e.onStopMove,h=e.onScroll,p=e.horizontal,v=e.spinSize,m=e.containerSize,g=d.useState(!1),y=(0,c.Z)(g,2),b=y[0],x=y[1],E=d.useState(null),w=(0,c.Z)(E,2),C=w[0],S=w[1],M=d.useState(null),_=(0,c.Z)(M,2),N=_[0],O=_[1],k=!i,T=d.useRef(),P=d.useRef(),A=d.useState(!1),I=(0,c.Z)(A,2),R=I[0],D=I[1],L=d.useRef(),Z=function(){clearTimeout(L.current),D(!0),L.current=setTimeout((function(){D(!1)}),3e3)},F=s-m||0,j=m-v||0,U=F>0,V=d.useMemo((function(){return 0===l||0===F?0:l/F*j}),[l,F,j]),H=d.useRef({top:V,dragging:b,pageY:C,startTop:N});H.current={top:V,dragging:b,pageY:C,startTop:N};var z=function(e){x(!0),S(je(e,p)),O(H.current.top),u(),e.stopPropagation(),e.preventDefault()};d.useEffect((function(){var e=function(e){e.preventDefault()},t=T.current,n=P.current;return t.addEventListener("touchstart",e),n.addEventListener("touchstart",z),function(){t.removeEventListener("touchstart",e),n.removeEventListener("touchstart",z)}}),[]);var B=d.useRef();B.current=F;var W=d.useRef();W.current=j,d.useEffect((function(){if(b){var e,t=function(t){var n=H.current,r=n.dragging,o=n.pageY,i=n.startTop;if(Fe.cancel(e),r){var a=je(t,p)-o,l=i;!k&&p?l-=a:l+=a;var s=B.current,c=W.current,u=c?l/c:0,f=Math.ceil(u*s);f=Math.max(f,0),f=Math.min(f,s),e=Fe((function(){h(f,p)}))}},n=function(){x(!1),f()};return window.addEventListener("mousemove",t),window.addEventListener("touchmove",t),window.addEventListener("mouseup",n),window.addEventListener("touchend",n),function(){window.removeEventListener("mousemove",t),window.removeEventListener("touchmove",t),window.removeEventListener("mouseup",n),window.removeEventListener("touchend",n),Fe.cancel(e)}}}),[b]),d.useEffect((function(){Z()}),[l]),d.useImperativeHandle(t,(function(){return{delayHidden:Z}}));var K="".concat(o,"-scrollbar"),G={position:"absolute",visibility:R&&U?null:"hidden"},Y={position:"absolute",background:"rgba(0, 0, 0, 0.5)",borderRadius:99,cursor:"pointer",userSelect:"none"};return p?(G.height=8,G.left=0,G.right=0,G.bottom=0,Y.height="100%",Y.width=v,k?Y.left=V:Y.right=V):(G.width=8,G.top=0,G.bottom=0,k?G.right=0:G.left=0,Y.width="100%",Y.height=v,Y.top=V),d.createElement("div",{ref:T,className:a()(K,(n={},(0,r.Z)(n,"".concat(K,"-horizontal"),p),(0,r.Z)(n,"".concat(K,"-vertical"),!p),(0,r.Z)(n,"".concat(K,"-visible"),R),n)),style:G,onMouseDown:function(e){e.stopPropagation(),e.preventDefault()},onMouseMove:Z},d.createElement("div",{ref:P,className:a()("".concat(K,"-thumb"),(0,r.Z)({},"".concat(K,"-thumb-moving"),b)),style:Y,onMouseDown:z}))}));function Ve(e){var t=e.children,n=e.setRef,r=d.useCallback((function(e){n(e)}),[]);return d.cloneElement(t,{ref:r})}function He(e){return function(e){return e instanceof HTMLElement||e instanceof SVGElement}(e)?e:e instanceof d.Component?Oe.findDOMNode(e):null}var ze=n(15671),Be=n(43144),We=function(){function e(){(0,ze.Z)(this,e),this.maps=void 0,this.id=0,this.maps=Object.create(null)}return(0,Be.Z)(e,[{key:"set",value:function(e,t){this.maps[e]=t,this.id+=1}},{key:"get",value:function(e){return this.maps[e]}}]),e}();function Ke(e,t,n){var r=d.useState(e),o=(0,c.Z)(r,2),i=o[0],a=o[1],l=d.useState(null),s=(0,c.Z)(l,2),u=s[0],f=s[1];return d.useEffect((function(){var r=function(e,t,n){var r,o,i=e.length,a=t.length;if(0===i&&0===a)return null;i1&&void 0!==arguments[1]&&arguments[1],i=e<0&&o.current.top||e>0&&o.current.bottom;return t&&i?(clearTimeout(r.current),n.current=!1):i&&!n.current||(clearTimeout(r.current),n.current=!0,r.current=setTimeout((function(){n.current=!1}),50)),!n.current&&i}};function Xe(e,t,n,r,o){var i=(0,d.useRef)(0),a=(0,d.useRef)(null),l=(0,d.useRef)(null),s=(0,d.useRef)(!1),c=Ye(t,n);var u=(0,d.useRef)(null),f=(0,d.useRef)(null);return[function(t){if(e){Fe.cancel(f.current),f.current=Fe((function(){u.current=null}),2);var n=t.deltaX,d=t.deltaY,h=t.shiftKey,p=n,v=d;("sx"===u.current||!u.current&&h&&d&&!n)&&(p=d,v=0,u.current="sx");var m=Math.abs(p),g=Math.abs(v);null===u.current&&(u.current=r&&m>g?"x":"y"),"y"===u.current?function(e,t){Fe.cancel(a.current),i.current+=t,l.current=t,c(t)||(Ge||e.preventDefault(),a.current=Fe((function(){var e=s.current?10:1;o(i.current*e),i.current=0})))}(t,v):function(e,t){o(t,!0),Ge||e.preventDefault()}(t,p)}},function(t){e&&(s.current=t.detail===l.current)}]}var qe="undefined"!==typeof window&&window.document&&window.document.createElement?d.useLayoutEffect:d.useEffect,Qe=function(e,t){var n=d.useRef(!0);qe((function(){return e(n.current)}),t),qe((function(){return n.current=!1,function(){n.current=!0}}),[])},$e=Qe,Je=14/15;var et=20;function tt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=e/(arguments.length>1&&void 0!==arguments[1]?arguments[1]:0)*100;return isNaN(t)&&(t=0),t=Math.max(t,et),t=Math.min(t,e/2),Math.floor(t)}function nt(e){var t=d.useRef();t.current=e;var n=d.useCallback((function(){for(var e,n=arguments.length,r=new Array(n),o=0;oh||!!C),R="rtl"===w,D=a()(i,(0,r.Z)({},"".concat(i,"-rtl"),R),l),L=y||ut,Z=(0,d.useRef)(),F=(0,d.useRef)(),j=(0,d.useState)(0),U=(0,c.Z)(j,2),V=U[0],H=U[1],z=(0,d.useState)(0),B=(0,c.Z)(z,2),W=B[0],K=B[1],G=(0,d.useState)(!1),Y=(0,c.Z)(G,2),X=Y[0],q=Y[1],Q=function(){q(!0)},$=function(){q(!1)},J=d.useCallback((function(e){return"function"===typeof x?x(e):null===e||void 0===e?void 0:e[x]}),[x]),ee={getKey:J};function te(e){H((function(t){var n=function(e){var t=e;Number.isNaN(_e.current)||(t=Math.min(t,_e.current));return t=Math.max(t,0),t}("function"===typeof e?e(t):e);return Z.current.scrollTop=n,n}))}var ne=(0,d.useRef)({start:0,end:L.length}),re=(0,d.useRef)(),oe=Ke(L,J),ie=(0,c.Z)(oe,1)[0];re.current=ie;var ae=function(e,t,n){var r=d.useState(0),o=(0,c.Z)(r,2),i=o[0],a=o[1],l=(0,d.useRef)(new Map),s=(0,d.useRef)(new We),u=(0,d.useRef)();function f(){Fe.cancel(u.current)}function h(){f(),u.current=Fe((function(){l.current.forEach((function(e,t){if(e&&e.offsetParent){var n=He(e),r=n.offsetHeight;s.current.get(t)!==r&&s.current.set(t,n.offsetHeight)}})),a((function(e){return e+1}))}))}return(0,d.useEffect)((function(){return f}),[]),[function(r,o){var i=e(r),a=l.current.get(i);o?(l.current.set(i,o),h()):l.current.delete(i),!a!==!o&&(o?null===t||void 0===t||t(r):null===n||void 0===n||n(r))},h,s.current,i]}(J,null,null),le=(0,c.Z)(ae,4),se=le[0],ce=le[1],ue=le[2],fe=le[3],de=d.useMemo((function(){if(!A)return{scrollHeight:void 0,start:0,end:L.length-1,offset:void 0};var e;if(!I)return{scrollHeight:(null===(e=F.current)||void 0===e?void 0:e.offsetHeight)||0,start:0,end:L.length-1,offset:void 0};for(var t,n,r,o=0,i=L.length,a=0;a=V&&void 0===t&&(t=a,n=o),u>V+h&&void 0===r&&(r=a),o=u}return void 0===t&&(t=0,n=0,r=Math.ceil(h/p)),void 0===r&&(r=L.length-1),{scrollHeight:o,start:t,end:r=Math.min(r+1,L.length-1),offset:n}}),[I,A,V,L,fe,h]),he=de.scrollHeight,pe=de.start,ve=de.end,me=de.offset;ne.current.start=pe,ne.current.end=ve;var ge=d.useState({width:0,height:h}),ye=(0,c.Z)(ge,2),be=ye[0],xe=ye[1],Ee=(0,d.useRef)(),we=(0,d.useRef)(),Ce=d.useMemo((function(){return tt(be.width,C)}),[be.width,C]),Se=d.useMemo((function(){return tt(be.height,he)}),[be.height,he]),Me=he-h,_e=(0,d.useRef)(Me);_e.current=Me;var Ne=V<=0,Te=V>=Me,Ae=Ye(Ne,Te),Ie=function(){return{x:R?-W:W,y:V}},Re=(0,d.useRef)(Ie()),De=nt((function(){if(N){var e=Ie();Re.current.x===e.x&&Re.current.y===e.y||(N(e),Re.current=e)}}));function Le(e,t){var n=e;t?((0,Oe.flushSync)((function(){K(n)})),De()):te(n)}var Ze=function(e){var t=e,n=C-be.width;return t=Math.max(t,0),t=Math.min(t,n)},je=nt((function(e,t){t?((0,Oe.flushSync)((function(){K((function(t){return Ze(t+(R?-e:e))}))})),De()):te((function(t){return t+e}))})),ze=Xe(A,Ne,Te,!!C,je),Be=(0,c.Z)(ze,2),Ge=Be[0],qe=Be[1];!function(e,t,n){var r,o=(0,d.useRef)(!1),i=(0,d.useRef)(0),a=(0,d.useRef)(null),l=(0,d.useRef)(null),s=function(e){if(o.current){var t=Math.ceil(e.touches[0].pageY),r=i.current-t;i.current=t,n(r)&&e.preventDefault(),clearInterval(l.current),l.current=setInterval((function(){(!n(r*=Je,!0)||Math.abs(r)<=.1)&&clearInterval(l.current)}),16)}},c=function(){o.current=!1,r()},u=function(e){r(),1!==e.touches.length||o.current||(o.current=!0,i.current=Math.ceil(e.touches[0].pageY),a.current=e.target,a.current.addEventListener("touchmove",s),a.current.addEventListener("touchend",c))};r=function(){a.current&&(a.current.removeEventListener("touchmove",s),a.current.removeEventListener("touchend",c))},$e((function(){return e&&t.current.addEventListener("touchstart",u),function(){var e;null===(e=t.current)||void 0===e||e.removeEventListener("touchstart",u),r(),clearInterval(l.current)}}),[e])}(A,Z,(function(e,t){return!Ae(e,t)&&(Ge({preventDefault:function(){},deltaY:e}),!0)})),$e((function(){function e(e){A&&e.preventDefault()}var t=Z.current;return t.addEventListener("wheel",Ge),t.addEventListener("DOMMouseScroll",qe),t.addEventListener("MozMousePixelScroll",e),function(){t.removeEventListener("wheel",Ge),t.removeEventListener("DOMMouseScroll",qe),t.removeEventListener("MozMousePixelScroll",e)}}),[A]);var Qe=function(){var e,t;null===(e=Ee.current)||void 0===e||e.delayHidden(),null===(t=we.current)||void 0===t||t.delayHidden()},et=function(e,t,n,r,o,i,a,l){var s=d.useRef();return function(c){if(null!==c&&void 0!==c){if(Fe.cancel(s.current),"number"===typeof c)a(c);else if(c&&"object"===(0,f.Z)(c)){var u,d=c.align;u="index"in c?c.index:t.findIndex((function(e){return o(e)===c.key}));var h=c.offset,p=void 0===h?0:h;!function l(c,f){if(!(c<0)&&e.current){var h=e.current.clientHeight,v=!1,m=f;if(h){for(var g=f||d,y=0,b=0,x=0,E=Math.min(t.length,u),w=0;w<=E;w+=1){var C=o(t[w]);b=y;var S=n.get(C);y=x=b+(void 0===S?r:S),w===u&&void 0===S&&(v=!0)}var M=null;switch(g){case"top":M=b-p;break;case"bottom":M=x-h+p;break;default:var _=e.current.scrollTop;b<_?m="top":x>_+h&&(m="bottom")}null!==M&&M!==e.current.scrollTop&&a(M)}s.current=Fe((function(){v&&i(),l(c-1,m)}),2)}}(3)}}else l()}}(Z,L,ue,p,J,ce,te,Qe);d.useImperativeHandle(t,(function(){return{getScrollInfo:Ie,scrollTo:function(e){var t;(t=e)&&"object"===(0,f.Z)(t)&&("left"in t||"top"in t)?(void 0!==e.left&&K(Ze(e.left)),et(e.top)):et(e)}}})),$e((function(){if(O){var e=L.slice(pe,ve+1);O(e,L)}}),[pe,ve,L]);var rt=function(e,t,n,r){var o=d.useMemo((function(){return[new Map,[]]}),[e,n.id,r]),i=(0,c.Z)(o,2),a=i[0],l=i[1];return function(o){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o,s=a.get(o),c=a.get(i);if(void 0===s||void 0===c)for(var u=e.length,f=l.length;fh&&d.createElement(Ue,{ref:Ee,prefixCls:i,scrollOffset:V,scrollRange:he,rtl:R,onScroll:Le,onStartMove:Q,onStopMove:$,spinSize:Se,containerSize:be.height}),I&&C&&d.createElement(Ue,{ref:we,prefixCls:i,scrollOffset:W,scrollRange:C,rtl:R,onScroll:Le,onStartMove:Q,onStopMove:$,spinSize:Ce,containerSize:be.width,horizontal:!0}))}var ht=d.forwardRef(dt);ht.displayName="List";var pt=ht;var vt=d.createContext(null),mt=["disabled","title","children","style","className"];function gt(e){return"string"===typeof e||"number"===typeof e}var yt=function(e,t){var n=d.useContext(R),i=n.prefixCls,f=n.id,h=n.open,p=n.multiple,v=n.mode,m=n.searchValue,g=n.toggleOpen,y=n.notFoundContent,b=n.onPopupScroll,x=d.useContext(vt),E=x.flattenOptions,w=x.onActiveValue,C=x.defaultActiveFirstOption,S=x.onSelect,M=x.menuItemSelectedIcon,_=x.rawValues,N=x.fieldNames,O=x.virtual,k=x.listHeight,P=x.listItemHeight,I="".concat(i,"-item"),D=A((function(){return E}),[h,E],(function(e,t){return t[0]&&e[1]!==t[1]})),L=d.useRef(null),Z=function(e){e.preventDefault()},j=function(e){L.current&&L.current.scrollTo("number"===typeof e?{index:e}:e)},V=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=D.length,r=0;r1&&void 0!==arguments[1]&&arguments[1];W(e);var n={source:t?"keyboard":"mouse"},r=D[e];r?w(r.value,e,n):w(null,-1,n)};(0,d.useEffect)((function(){K(!1!==C?V(0):-1)}),[D.length,m]);var G=d.useCallback((function(e){return _.has(e)&&"combobox"!==v}),[v,(0,l.Z)(_).toString(),_.size]);(0,d.useEffect)((function(){var e,t=setTimeout((function(){if(!p&&h&&1===_.size){var e=Array.from(_)[0],t=D.findIndex((function(t){return t.data.value===e}));-1!==t&&(K(t),j(t))}}));h&&(null===(e=L.current)||void 0===e||e.scrollTo(void 0));return function(){return clearTimeout(t)}}),[h,m]);var Y=function(e){void 0!==e&&S(e,{selected:!_.has(e)}),p||g(!1)};if(d.useImperativeHandle(t,(function(){return{onKeyDown:function(e){var t=e.which,n=e.ctrlKey;switch(t){case T.N:case T.P:case T.UP:case T.DOWN:var r=0;if(t===T.UP?r=-1:t===T.DOWN?r=1:/(mac\sos|macintosh)/i.test(navigator.appVersion)&&n&&(t===T.N?r=1:t===T.P&&(r=-1)),0!==r){var o=V(B+r,r);j(o),K(o,!0)}break;case T.ENTER:var i=D[B];i&&!i.data.disabled?Y(i.value):Y(void 0),h&&e.preventDefault();break;case T.ESC:g(!1),h&&e.stopPropagation()}},onKeyUp:function(){},scrollTo:function(e){j(e)}}})),0===D.length)return d.createElement("div",{role:"listbox",id:"".concat(f,"_list"),className:"".concat(I,"-empty"),onMouseDown:Z},y);var X=Object.keys(N).map((function(e){return N[e]})),q=function(e){return e.label},Q=function(e){var t=D[e];if(!t)return null;var n=t.data||{},r=n.value,i=t.group,a=F(n,!0),l=q(t);return t?d.createElement("div",(0,o.Z)({"aria-label":"string"!==typeof l||i?null:l},a,{key:e,role:i?"presentation":"option",id:"".concat(f,"_list_").concat(e),"aria-selected":G(r)}),r):null};return d.createElement(d.Fragment,null,d.createElement("div",{role:"listbox",id:"".concat(f,"_list"),style:{height:0,width:0,overflow:"hidden"}},Q(B-1),Q(B),Q(B+1)),d.createElement(pt,{itemKey:"key",ref:L,data:D,height:k,itemHeight:P,fullHeight:!1,onMouseDown:Z,onScroll:b,virtual:O},(function(e,t){var n,i=e.group,l=e.groupOption,c=e.data,f=e.label,h=e.value,p=c.key;if(i){var v,m=null!==(v=c.title)&&void 0!==v?v:gt(f)?f.toString():void 0;return d.createElement("div",{className:a()(I,"".concat(I,"-group")),title:m},void 0!==f?f:p)}var g=c.disabled,y=c.title,b=(c.children,c.style),x=c.className,E=function(e,t){var n=(0,s.Z)({},e);return Array.isArray(t)&&t.forEach((function(e){delete n[e]})),n}((0,u.Z)(c,mt),X),w=G(h),C="".concat(I,"-option"),S=a()(I,C,x,(n={},(0,r.Z)(n,"".concat(C,"-grouped"),l),(0,r.Z)(n,"".concat(C,"-active"),B===t&&!g),(0,r.Z)(n,"".concat(C,"-disabled"),g),(0,r.Z)(n,"".concat(C,"-selected"),w),n)),_=q(e),N=!M||"function"===typeof M||w,O="number"===typeof _?_:_||h,k=gt(O)?O.toString():void 0;return void 0!==y&&(k=y),d.createElement("div",(0,o.Z)({},F(E),{"aria-selected":w,className:S,title:k,onMouseMove:function(){B===t||g||K(t)},onClick:function(){g||Y(h)},style:b}),d.createElement("div",{className:"".concat(C,"-content")},O),d.isValidElement(M)||w,N&&d.createElement(U,{className:"".concat(I,"-option-state"),customizeIcon:M,customizeIconProps:{isSelected:w}},w?"\u2713":null))})))},bt=d.forwardRef(yt);bt.displayName="OptionList";var xt=bt;var Et=["id","mode","prefixCls","backfill","fieldNames","inputValue","searchValue","onSearch","autoClearSearchValue","onSelect","onDeselect","dropdownMatchSelectWidth","filterOption","filterSort","optionFilterProp","optionLabelProp","options","children","defaultActiveFirstOption","menuItemSelectedIcon","virtual","listHeight","listItemHeight","value","defaultValue","labelInValue","onChange"],wt=["inputValue"];var Ct=d.forwardRef((function(e,t){var n=e.id,i=e.mode,a=e.prefixCls,h=void 0===a?"rc-select":a,p=e.backfill,v=e.fieldNames,m=e.inputValue,g=e.searchValue,y=e.onSearch,b=e.autoClearSearchValue,x=void 0===b||b,w=e.onSelect,C=e.onDeselect,S=e.dropdownMatchSelectWidth,M=void 0===S||S,_=e.filterOption,N=e.filterSort,O=e.optionFilterProp,k=e.optionLabelProp,T=e.options,P=e.children,A=e.defaultActiveFirstOption,I=e.menuItemSelectedIcon,R=e.virtual,D=e.listHeight,L=void 0===D?200:D,Z=e.listItemHeight,F=void 0===Z?20:Z,j=e.value,U=e.defaultValue,V=e.labelInValue,H=e.onChange,z=(0,u.Z)(e,Et),W=ye(n),K=de(i),G=!(T||!P),Y=d.useMemo((function(){return(void 0!==_||"combobox"!==i)&&_}),[_,i]),X=d.useMemo((function(){return se(v,G)}),[JSON.stringify(v),G]),q=E("",{value:void 0!==g?g:m,postState:function(e){return e||""}}),Q=(0,c.Z)(q,2),$=Q[0],J=Q[1],ee=function(e,t,n,r,o){return d.useMemo((function(){var i=e;!e&&(i=we(t));var a=new Map,l=new Map,s=function(e,t,n){n&&"string"===typeof n&&e.set(t[n],t)};return function e(t){for(var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],c=0;c1&&void 0!==arguments[1]?arguments[1]:{},n=t.fieldNames,r=t.childrenAsData,o=[],i=se(n,!1),a=i.label,l=i.value,s=i.options;return function e(t,n){t.forEach((function(t){var i=t[a];if(n||!(s in t)){var c=t[l];o.push({key:le(t,o.length),groupOption:n,data:t,label:i,value:c})}else{var u=i;void 0===u&&r&&(u=t.label),o.push({key:le(t,o.length),group:!0,data:t,label:u}),e(t[s],!0)}}))}(e,!1),o}(Ne,{fieldNames:X,childrenAsData:G})}),[Ne,X,G]),ke=function(e){var t=oe(e);if(fe(t),H&&(t.length!==ge.length||t.some((function(e,t){var n;return(null===(n=ge[t])||void 0===n?void 0:n.value)!==(null===e||void 0===e?void 0:e.value)})))){var n=V?t:t.map((function(e){return e.value})),r=t.map((function(e){return ce(be(e.value))}));H(K?n:n[0],K?r:r[0])}},Te=d.useState(null),Pe=(0,c.Z)(Te,2),Ae=Pe[0],Ie=Pe[1],Re=d.useState(0),De=(0,c.Z)(Re,2),Le=De[0],Ze=De[1],Fe=void 0!==A?A:"combobox"!==i,je=d.useCallback((function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).source,r=void 0===n?"keyboard":n;Ze(t),p&&"combobox"===i&&null!==e&&"keyboard"===r&&Ie(String(e))}),[p,i]),Ue=function(e,t,n){var r=function(){var t,n=be(e);return[V?{label:null===n||void 0===n?void 0:n[X.label],value:e,key:null!==(t=null===n||void 0===n?void 0:n.key)&&void 0!==t?t:e}:e,ce(n)]};if(t&&w){var o=r(),i=(0,c.Z)(o,2),a=i[0],l=i[1];w(a,l)}else if(!t&&C&&"clear"!==n){var s=r(),u=(0,c.Z)(s,2),f=u[0],d=u[1];C(f,d)}},Ve=Ce((function(e,t){var n,r=!K||t.selected;n=r?K?[].concat((0,l.Z)(ge),[e]):[e]:ge.filter((function(t){return t.value!==e})),ke(n),Ue(e,r),"combobox"===i?Ie(""):de&&!x||(J(""),Ie(""))})),He=d.useMemo((function(){var e=!1!==R&&!1!==M;return(0,s.Z)((0,s.Z)({},ee),{},{flattenOptions:Oe,onActiveValue:je,defaultActiveFirstOption:Fe,onSelect:Ve,menuItemSelectedIcon:I,rawValues:Ee,fieldNames:X,virtual:e,listHeight:L,listItemHeight:F,childrenAsData:G})}),[ee,Oe,je,Fe,Ve,I,Ee,X,R,M,L,F,G]);return d.createElement(vt.Provider,{value:He},d.createElement(pe,(0,o.Z)({},z,{id:W,prefixCls:h,ref:t,omitDomProps:wt,mode:i,displayValues:xe,onDisplayValuesChange:function(e,t){ke(e);var n=t.type,r=t.values;"remove"!==n&&"clear"!==n||r.forEach((function(e){Ue(e.value,!1,n)}))},searchValue:$,onSearch:function(e,t){if(J(e),Ie(null),"submit"!==t.source)"blur"!==t.source&&("combobox"===i&&ke(e),null===y||void 0===y||y(e));else{var n=(e||"").trim();if(n){var r=Array.from(new Set([].concat((0,l.Z)(Ee),[n])));ke(r),Ue(n,!0),J("")}}},autoClearSearchValue:x,onSearchSplit:function(e){var t=e;"tags"!==i&&(t=e.map((function(e){var t=ne.get(e);return null===t||void 0===t?void 0:t.value})).filter((function(e){return void 0!==e})));var n=Array.from(new Set([].concat((0,l.Z)(Ee),(0,l.Z)(t))));ke(n),n.forEach((function(e){Ue(e,!0)}))},dropdownMatchSelectWidth:M,OptionList:xt,emptyOptions:!Oe.length,activeValue:Ae,activeDescendantId:"".concat(W,"_list_").concat(Le)})))}));var St=Ct;St.Option=Ne,St.OptGroup=Me;var Mt=St,_t=n(71498),Nt=n(71929),Ot=n(93486),kt=function(){var e=(0,d.useContext(Nt.E_).getPrefixCls)("empty-img-default");return d.createElement("svg",{className:e,width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},d.createElement("g",{fill:"none",fillRule:"evenodd"},d.createElement("g",{transform:"translate(24 31.67)"},d.createElement("ellipse",{className:"".concat(e,"-ellipse"),cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),d.createElement("path",{className:"".concat(e,"-path-1"),d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z"}),d.createElement("path",{className:"".concat(e,"-path-2"),d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",transform:"translate(13.56)"}),d.createElement("path",{className:"".concat(e,"-path-3"),d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z"}),d.createElement("path",{className:"".concat(e,"-path-4"),d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z"})),d.createElement("path",{className:"".concat(e,"-path-5"),d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z"}),d.createElement("g",{className:"".concat(e,"-g"),transform:"translate(149.65 15.383)"},d.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),d.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))},Tt=function(){var e=(0,d.useContext(Nt.E_).getPrefixCls)("empty-img-simple");return d.createElement("svg",{className:e,width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},d.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},d.createElement("ellipse",{className:"".concat(e,"-ellipse"),cx:"32",cy:"33",rx:"32",ry:"7"}),d.createElement("g",{className:"".concat(e,"-g"),fillRule:"nonzero"},d.createElement("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),d.createElement("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",className:"".concat(e,"-path")}))))},Pt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o=g.F1&&t<=g.F12)return!1;switch(t){case g.ALT:case g.CAPS_LOCK:case g.CONTEXT_MENU:case g.CTRL:case g.DOWN:case g.END:case g.ESC:case g.HOME:case g.INSERT:case g.LEFT:case g.MAC_FF_META:case g.META:case g.NUMLOCK:case g.NUM_CENTER:case g.PAGE_DOWN:case g.PAGE_UP:case g.PAUSE:case g.PRINT_SCREEN:case g.RIGHT:case g.SHIFT:case g.UP:case g.WIN_KEY:case g.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=g.ZERO&&e<=g.NINE)return!0;if(e>=g.NUM_ZERO&&e<=g.NUM_MULTIPLY)return!0;if(e>=g.A&&e<=g.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case g.SPACE:case g.QUESTION_MARK:case g.NUM_PLUS:case g.NUM_MINUS:case g.NUM_PERIOD:case g.NUM_DIVISION:case g.SEMICOLON:case g.DASH:case g.EQUALS:case g.COMMA:case g.PERIOD:case g.SLASH:case g.APOSTROPHE:case g.SINGLE_QUOTE:case g.OPEN_SQUARE_BRACKET:case g.BACKSLASH:case g.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},y=g,b=u.forwardRef((function(e,t){var n,r=e.prefixCls,i=void 0===r?"rc-switch":r,a=e.className,d=e.checked,h=e.defaultChecked,g=e.disabled,b=e.loadingIcon,x=e.checkedChildren,E=e.unCheckedChildren,w=e.onClick,C=e.onChange,S=e.onKeyDown,M=(0,c.Z)(e,["prefixCls","className","checked","defaultChecked","disabled","loadingIcon","checkedChildren","unCheckedChildren","onClick","onChange","onKeyDown"]),_=function(e,t){var n=t||{},r=n.defaultValue,o=n.value,i=n.onChange,a=n.postState,l=v((function(){return m(o)?o:m(r)?"function"===typeof r?r():r:"function"===typeof e?e():e})),c=(0,s.Z)(l,2),u=c[0],d=c[1],h=void 0!==o?o:u,g=a?a(h):h,y=f(i),b=v([h]),x=(0,s.Z)(b,2),E=x[0],w=x[1];return p((function(){var e=E[0];u!==e&&y(u,e)}),[E]),p((function(){m(o)||d(o)}),[o]),[g,f((function(e,t){d(e,t),w([h],t)}))]}(!1,{value:d,defaultValue:h}),N=(0,s.Z)(_,2),O=N[0],k=N[1];function T(e,t){var n=O;return g||(k(n=e),null===C||void 0===C||C(n,t)),n}var P=l()(i,a,(n={},(0,o.Z)(n,"".concat(i,"-checked"),O),(0,o.Z)(n,"".concat(i,"-disabled"),g),n));return u.createElement("button",Object.assign({},M,{type:"button",role:"switch","aria-checked":O,disabled:g,className:P,ref:t,onKeyDown:function(e){e.which===y.LEFT?T(!1,e):e.which===y.RIGHT&&T(!0,e),null===S||void 0===S||S(e)},onClick:function(e){var t=T(!O,e);null===w||void 0===w||w(t,e)}}),b,u.createElement("span",{className:"".concat(i,"-inner")},O?x:E))}));b.displayName="Switch";var x=b,E=n(71929),w=n(19125),C=n(1815),S=n(35642),M=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){s.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){s.headers[e]=r.merge(a)})),e.exports=s},67600:function(e){e.exports={version:"0.26.0"}},44049:function(e){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}})),a):a}},98089:function(e){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},47835:function(e,t,n){"use strict";var r=n(67600).version,o={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){o[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var i={};o.transitional=function(e,t,n){function o(e,t){return"[Axios v"+r+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,r,a){if(!1===e)throw new Error(o(r," has been removed"+(t?" in "+t:"")));return t&&!i[r]&&(i[r]=!0,console.warn(o(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,r,a)}},e.exports={assertOptions:function(e,t,n){if("object"!==typeof e)throw new TypeError("options must be an object");for(var r=Object.keys(e),o=r.length;o-- >0;){var i=r[o],a=t[i];if(a){var l=e[i],s=void 0===l||a(l,i,e);if(!0!==s)throw new TypeError("option "+i+" must be "+s)}else if(!0!==n)throw Error("Unknown option "+i)}},validators:o}},33589:function(e,t,n){"use strict";var r=n(44049),o=Object.prototype.toString;function i(e){return Array.isArray(e)}function a(e){return"undefined"===typeof e}function l(e){return"[object ArrayBuffer]"===o.call(e)}function s(e){return null!==e&&"object"===typeof e}function c(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function u(e){return"[object Function]"===o.call(e)}function f(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n1&&(o-=1)),[360*o,100*i,100*c]},o.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2];return[o.rgb.hsl(e)[0],1/255*Math.min(t,Math.min(n,r))*100,100*(r=1-1/255*Math.max(t,Math.max(n,r)))]},o.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,o=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-o)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-o-t)/(1-t)||0),100*t]},o.rgb.keyword=function(e){var n=t[e];if(n)return n;var o,i=1/0;for(var a in r)if(r.hasOwnProperty(a)){var l=s(e,r[a]);l.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},o.rgb.lab=function(e){var t=o.rgb.xyz(e),n=t[0],r=t[1],i=t[2];return r/=100,i/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},o.hsl.rgb=function(e){var t,n,r,o,i,a=e[0]/360,l=e[1]/100,s=e[2]/100;if(0===l)return[i=255*s,i,i];t=2*s-(n=s<.5?s*(1+l):s+l-s*l),o=[0,0,0];for(var c=0;c<3;c++)(r=a+1/3*-(c-1))<0&&r++,r>1&&r--,i=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,o[c]=255*i;return o},o.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,o=n,i=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,o*=i<=1?i:2-i,[t,100*(0===r?2*o/(i+o):2*n/(r+n)),(r+n)/2*100]},o.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,o=Math.floor(t)%6,i=t-Math.floor(t),a=255*r*(1-n),l=255*r*(1-n*i),s=255*r*(1-n*(1-i));switch(r*=255,o){case 0:return[r,s,a];case 1:return[l,r,a];case 2:return[a,r,s];case 3:return[a,l,r];case 4:return[s,a,r];case 5:return[r,a,l]}},o.hsv.hsl=function(e){var t,n,r,o=e[0],i=e[1]/100,a=e[2]/100,l=Math.max(a,.01);return r=(2-i)*a,n=i*l,[o,100*(n=(n/=(t=(2-i)*l)<=1?t:2-t)||0),100*(r/=2)]},o.hwb.rgb=function(e){var t,n,r,o,i,a,l,s=e[0]/360,c=e[1]/100,u=e[2]/100,f=c+u;switch(f>1&&(c/=f,u/=f),r=6*s-(t=Math.floor(6*s)),0!==(1&t)&&(r=1-r),o=c+r*((n=1-u)-c),t){default:case 6:case 0:i=n,a=o,l=c;break;case 1:i=o,a=n,l=c;break;case 2:i=c,a=n,l=o;break;case 3:i=c,a=o,l=n;break;case 4:i=o,a=c,l=n;break;case 5:i=n,a=c,l=o}return[255*i,255*a,255*l]},o.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,o=e[3]/100;return[255*(1-Math.min(1,t*(1-o)+o)),255*(1-Math.min(1,n*(1-o)+o)),255*(1-Math.min(1,r*(1-o)+o))]},o.xyz.rgb=function(e){var t,n,r,o=e[0]/100,i=e[1]/100,a=e[2]/100;return n=-.9689*o+1.8758*i+.0415*a,r=.0557*o+-.204*i+1.057*a,t=(t=3.2406*o+-1.5372*i+-.4986*a)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},o.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},o.lab.xyz=function(e){var t,n,r,o=e[0];t=e[1]/500+(n=(o+16)/116),r=n-e[2]/200;var i=Math.pow(n,3),a=Math.pow(t,3),l=Math.pow(r,3);return n=i>.008856?i:(n-16/116)/7.787,t=a>.008856?a:(t-16/116)/7.787,r=l>.008856?l:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},o.lab.lch=function(e){var t,n=e[0],r=e[1],o=e[2];return(t=360*Math.atan2(o,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+o*o),t]},o.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},o.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],i=1 in arguments?arguments[1]:o.rgb.hsv(e)[2];if(0===(i=Math.round(i/50)))return 30;var a=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===i&&(a+=60),a},o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])},o.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},o.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},o.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},o.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},o.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},o.rgb.hcg=function(e){var t,n=e[0]/255,r=e[1]/255,o=e[2]/255,i=Math.max(Math.max(n,r),o),a=Math.min(Math.min(n,r),o),l=i-a;return t=l<=0?0:i===n?(r-o)/l%6:i===r?2+(o-n)/l:4+(n-r)/l+4,t/=6,[360*(t%=1),100*l,100*(l<1?a/(1-l):0)]},o.hsl.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1,o=0;return(r=n<.5?2*t*n:2*t*(1-n))<1&&(o=(n-.5*r)/(1-r)),[e[0],100*r,100*o]},o.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,o=0;return r<1&&(o=(n-r)/(1-r)),[e[0],100*r,100*o]},o.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var o=[0,0,0],i=t%1*6,a=i%1,l=1-a,s=0;switch(Math.floor(i)){case 0:o[0]=1,o[1]=a,o[2]=0;break;case 1:o[0]=l,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=a;break;case 3:o[0]=0,o[1]=l,o[2]=1;break;case 4:o[0]=a,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=l}return s=(1-n)*r,[255*(n*o[0]+s),255*(n*o[1]+s),255*(n*o[2]+s)]},o.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},o.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},o.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},o.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,o=0;return r<1&&(o=(n-r)/(1-r)),[e[0],100*r,100*o]},o.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},o.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},o.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},o.gray.hsl=o.gray.hsv=function(e){return[0,0,e[0]]},o.gray.hwb=function(e){return[0,100,e[0]]},o.gray.cmyk=function(e){return[0,0,0,e[0]]},o.gray.lab=function(e){return[e[0],0,0]},o.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},o.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}));function i(){for(var e={},t=Object.keys(o),n=t.length,r=0;r1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}function d(e){var t=function(t){if(void 0===t||null===t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"===typeof n)for(var r=n.length,o=0;o=0&&t<1?A(Math.round(255*t)):"")}function C(e,t){return t<1||e[3]&&e[3]<1?S(e,t):"rgb("+e[0]+", "+e[1]+", "+e[2]+")"}function S(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"rgba("+e[0]+", "+e[1]+", "+e[2]+", "+t+")"}function M(e,t){return t<1||e[3]&&e[3]<1?_(e,t):"rgb("+Math.round(e[0]/255*100)+"%, "+Math.round(e[1]/255*100)+"%, "+Math.round(e[2]/255*100)+"%)"}function _(e,t){return"rgba("+Math.round(e[0]/255*100)+"%, "+Math.round(e[1]/255*100)+"%, "+Math.round(e[2]/255*100)+"%, "+(t||e[3]||1)+")"}function N(e,t){return t<1||e[3]&&e[3]<1?O(e,t):"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)"}function O(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+t+")"}function k(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+(void 0!==t&&1!==t?", "+t:"")+")"}function T(e){return I[e.slice(0,3)]}function P(e,t,n){return Math.min(Math.max(t,e),n)}function A(e){var t=e.toString(16).toUpperCase();return t.length<2?"0"+t:t}var I={};for(var R in p)I[p[R]]=R;var D=function e(t){return t instanceof e?t:this instanceof e?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"===typeof t?(n=v.getRgba(t))?this.setValues("rgb",n):(n=v.getHsla(t))?this.setValues("hsl",n):(n=v.getHwb(t))&&this.setValues("hwb",n):"object"===typeof t&&(void 0!==(n=t).r||void 0!==n.red?this.setValues("rgb",n):void 0!==n.l||void 0!==n.lightness?this.setValues("hsl",n):void 0!==n.v||void 0!==n.value?this.setValues("hsv",n):void 0!==n.w||void 0!==n.whiteness?this.setValues("hwb",n):void 0===n.c&&void 0===n.cyan||this.setValues("cmyk",n)))):new e(t);var n};D.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var e=this.values;return 1!==e.alpha?e.hwb.concat([e.alpha]):e.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var e=this.values;return e.rgb.concat([e.alpha])},hslaArray:function(){var e=this.values;return e.hsl.concat([e.alpha])},alpha:function(e){return void 0===e?this.values.alpha:(this.setValues("alpha",e),this)},red:function(e){return this.setChannel("rgb",0,e)},green:function(e){return this.setChannel("rgb",1,e)},blue:function(e){return this.setChannel("rgb",2,e)},hue:function(e){return e&&(e=(e%=360)<0?360+e:e),this.setChannel("hsl",0,e)},saturation:function(e){return this.setChannel("hsl",1,e)},lightness:function(e){return this.setChannel("hsl",2,e)},saturationv:function(e){return this.setChannel("hsv",1,e)},whiteness:function(e){return this.setChannel("hwb",1,e)},blackness:function(e){return this.setChannel("hwb",2,e)},value:function(e){return this.setChannel("hsv",2,e)},cyan:function(e){return this.setChannel("cmyk",0,e)},magenta:function(e){return this.setChannel("cmyk",1,e)},yellow:function(e){return this.setChannel("cmyk",2,e)},black:function(e){return this.setChannel("cmyk",3,e)},hexString:function(){return v.hexString(this.values.rgb)},rgbString:function(){return v.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return v.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return v.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return v.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return v.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return v.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return v.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var e=this.values.rgb;return e[0]<<16|e[1]<<8|e[2]},luminosity:function(){for(var e=this.values.rgb,t=[],n=0;nn?(t+.05)/(n+.05):(n+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},dark:function(){var e=this.values.rgb;return(299*e[0]+587*e[1]+114*e[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var e=[],t=0;t<3;t++)e[t]=255-this.values.rgb[t];return this.setValues("rgb",e),this},lighten:function(e){var t=this.values.hsl;return t[2]+=t[2]*e,this.setValues("hsl",t),this},darken:function(e){var t=this.values.hsl;return t[2]-=t[2]*e,this.setValues("hsl",t),this},saturate:function(e){var t=this.values.hsl;return t[1]+=t[1]*e,this.setValues("hsl",t),this},desaturate:function(e){var t=this.values.hsl;return t[1]-=t[1]*e,this.setValues("hsl",t),this},whiten:function(e){var t=this.values.hwb;return t[1]+=t[1]*e,this.setValues("hwb",t),this},blacken:function(e){var t=this.values.hwb;return t[2]+=t[2]*e,this.setValues("hwb",t),this},greyscale:function(){var e=this.values.rgb,t=.3*e[0]+.59*e[1]+.11*e[2];return this.setValues("rgb",[t,t,t]),this},clearer:function(e){var t=this.values.alpha;return this.setValues("alpha",t-t*e),this},opaquer:function(e){var t=this.values.alpha;return this.setValues("alpha",t+t*e),this},rotate:function(e){var t=this.values.hsl,n=(t[0]+e)%360;return t[0]=n<0?360+n:n,this.setValues("hsl",t),this},mix:function(e,t){var n=this,r=e,o=void 0===t?.5:t,i=2*o-1,a=n.alpha()-r.alpha(),l=((i*a===-1?i:(i+a)/(1+i*a))+1)/2,s=1-l;return this.rgb(l*n.red()+s*r.red(),l*n.green()+s*r.green(),l*n.blue()+s*r.blue()).alpha(n.alpha()*o+r.alpha()*(1-o))},toJSON:function(){return this.rgb()},clone:function(){var e,t,n=new D,r=this.values,o=n.values;for(var i in r)r.hasOwnProperty(i)&&(e=r[i],"[object Array]"===(t={}.toString.call(e))?o[i]=e.slice(0):"[object Number]"===t?o[i]=e:console.error("unexpected color value:",e));return n}},D.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},D.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},D.prototype.getValues=function(e){for(var t=this.values,n={},r=0;r=0;o--)t.call(n,e[o],o);else for(o=0;o=1?e:-(Math.sqrt(1-e*e)-1)},easeOutCirc:function(e){return Math.sqrt(1-(e-=1)*e)},easeInOutCirc:function(e){return(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},easeInElastic:function(e){var t=1.70158,n=0,r=1;return 0===e?0:1===e?1:(n||(n=.3),r<1?(r=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/r),-r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n))},easeOutElastic:function(e){var t=1.70158,n=0,r=1;return 0===e?0:1===e?1:(n||(n=.3),r<1?(r=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/r),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},easeInOutElastic:function(e){var t=1.70158,n=0,r=1;return 0===e?0:2===(e/=.5)?1:(n||(n=.45),r<1?(r=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/r),e<1?r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*-.5:r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},easeInBack:function(e){var t=1.70158;return e*e*((t+1)*e-t)},easeOutBack:function(e){var t=1.70158;return(e-=1)*e*((t+1)*e+t)+1},easeInOutBack:function(e){var t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},easeInBounce:function(e){return 1-U.easeOutBounce(1-e)},easeOutBounce:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:function(e){return e<.5?.5*U.easeInBounce(2*e):.5*U.easeOutBounce(2*e-1)+.5}},V={effects:U};j.easingEffects=U;var H=Math.PI,z=H/180,B=2*H,W=H/2,K=H/4,G=2*H/3,Y={clear:function(e){e.ctx.clearRect(0,0,e.width,e.height)},roundedRect:function(e,t,n,r,o,i){if(i){var a=Math.min(i,o/2,r/2),l=t+a,s=n+a,c=t+r-a,u=n+o-a;e.moveTo(t,s),lt.left-n&&e.xt.top-n&&e.y0&&e.requestAnimationFrame()},advance:function(){for(var e,t,n,r,o=this.animations,i=0;i=n?(ie.callback(e.onAnimationComplete,[e],t),t.animating=!1,o.splice(i,1)):++i}},ge=ie.options.resolve,ye=["push","pop","shift","splice","unshift"];function be(e,t){e._chartjs?e._chartjs.listeners.push(t):(Object.defineProperty(e,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[t]}}),ye.forEach((function(t){var n="onData"+t.charAt(0).toUpperCase()+t.slice(1),r=e[t];Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:function(){var t=Array.prototype.slice.call(arguments),o=r.apply(this,t);return ie.each(e._chartjs.listeners,(function(e){"function"===typeof e[n]&&e[n].apply(e,t)})),o}})})))}function xe(e,t){var n=e._chartjs;if(n){var r=n.listeners,o=r.indexOf(t);-1!==o&&r.splice(o,1),r.length>0||(ye.forEach((function(t){delete e[t]})),delete e._chartjs)}}var Ee=function(e,t){this.initialize(e,t)};ie.extend(Ee.prototype,{datasetElementType:null,dataElementType:null,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth"],_dataElementOptions:["backgroundColor","borderColor","borderWidth","pointStyle"],initialize:function(e,t){var n=this;n.chart=e,n.index=t,n.linkScales(),n.addElements(),n._type=n.getMeta().type},updateIndex:function(e){this.index=e},linkScales:function(){var e=this,t=e.getMeta(),n=e.chart,r=n.scales,o=e.getDataset(),i=n.options.scales;null!==t.xAxisID&&t.xAxisID in r&&!o.xAxisID||(t.xAxisID=o.xAxisID||i.xAxes[0].id),null!==t.yAxisID&&t.yAxisID in r&&!o.yAxisID||(t.yAxisID=o.yAxisID||i.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(e){return this.chart.scales[e]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this._update(!0)},destroy:function(){this._data&&xe(this._data,this)},createMetaDataset:function(){var e=this,t=e.datasetElementType;return t&&new t({_chart:e.chart,_datasetIndex:e.index})},createMetaData:function(e){var t=this,n=t.dataElementType;return n&&new n({_chart:t.chart,_datasetIndex:t.index,_index:e})},addElements:function(){var e,t,n=this,r=n.getMeta(),o=n.getDataset().data||[],i=r.data;for(e=0,t=o.length;er&&e.insertElements(r,o-r)},insertElements:function(e,t){for(var n=0;no?(i=o/t.innerRadius,e.arc(a,l,t.innerRadius-o,r+i,n-i,!0)):e.arc(a,l,o,r+Math.PI/2,n-Math.PI/2),e.closePath(),e.clip()}function Me(e,t,n,r){var o,i=n.endAngle;for(r&&(n.endAngle=n.startAngle+Ce,Se(e,n),n.endAngle=i,n.endAngle===n.startAngle&&n.fullCircles&&(n.endAngle+=Ce,n.fullCircles--)),e.beginPath(),e.arc(n.x,n.y,n.innerRadius,n.startAngle+Ce,n.startAngle,!0),o=0;ol;)o-=Ce;for(;o=a&&o<=l,c=i>=n.innerRadius&&i<=n.outerRadius;return s&&c}return!1},getCenterPoint:function(){var e=this._view,t=(e.startAngle+e.endAngle)/2,n=(e.innerRadius+e.outerRadius)/2;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},getArea:function(){var e=this._view;return Math.PI*((e.endAngle-e.startAngle)/(2*Math.PI))*(Math.pow(e.outerRadius,2)-Math.pow(e.innerRadius,2))},tooltipPosition:function(){var e=this._view,t=e.startAngle+(e.endAngle-e.startAngle)/2,n=(e.outerRadius-e.innerRadius)/2+e.innerRadius;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},draw:function(){var e,t=this._chart.ctx,n=this._view,r="inner"===n.borderAlign?.33:0,o={x:n.x,y:n.y,innerRadius:n.innerRadius,outerRadius:Math.max(n.outerRadius-r,0),pixelMargin:r,startAngle:n.startAngle,endAngle:n.endAngle,fullCircles:Math.floor(n.circumference/Ce)};if(t.save(),t.fillStyle=n.backgroundColor,t.strokeStyle=n.borderColor,o.fullCircles){for(o.endAngle=o.startAngle+Ce,t.beginPath(),t.arc(o.x,o.y,o.outerRadius,o.startAngle,o.endAngle),t.arc(o.x,o.y,o.innerRadius,o.endAngle,o.startAngle,!0),t.closePath(),e=0;ee.x&&(t=je(t,"left","right")):e.basen?n:r,r:s.right||o<0?0:o>t?t:o,b:s.bottom||i<0?0:i>n?n:i,l:s.left||a<0?0:a>t?t:a}}function He(e){var t=Fe(e),n=t.right-t.left,r=t.bottom-t.top,o=Ve(e,n/2,r/2);return{outer:{x:t.left,y:t.top,w:n,h:r},inner:{x:t.left+o.l,y:t.top+o.t,w:n-o.l-o.r,h:r-o.t-o.b}}}function ze(e,t,n){var r=null===t,o=null===n,i=!(!e||r&&o)&&Fe(e);return i&&(r||t>=i.left&&t<=i.right)&&(o||n>=i.top&&n<=i.bottom)}Q._set("global",{elements:{rectangle:{backgroundColor:Le,borderColor:Le,borderSkipped:"bottom",borderWidth:0}}});var Be=he.extend({_type:"rectangle",draw:function(){var e=this._chart.ctx,t=this._view,n=He(t),r=n.outer,o=n.inner;e.fillStyle=t.backgroundColor,e.fillRect(r.x,r.y,r.w,r.h),r.w===o.w&&r.h===o.h||(e.save(),e.beginPath(),e.rect(r.x,r.y,r.w,r.h),e.clip(),e.fillStyle=t.borderColor,e.rect(o.x,o.y,o.w,o.h),e.fill("evenodd"),e.restore())},height:function(){var e=this._view;return e.base-e.y},inRange:function(e,t){return ze(this._view,e,t)},inLabelRange:function(e,t){var n=this._view;return Ze(n)?ze(n,e,null):ze(n,null,t)},inXRange:function(e){return ze(this._view,e,null)},inYRange:function(e){return ze(this._view,null,e)},getCenterPoint:function(){var e,t,n=this._view;return Ze(n)?(e=n.x,t=(n.y+n.base)/2):(e=(n.x+n.base)/2,t=n.y),{x:e,y:t}},getArea:function(){var e=this._view;return Ze(e)?e.width*Math.abs(e.y-e.base):e.height*Math.abs(e.x-e.base)},tooltipPosition:function(){var e=this._view;return{x:e.x,y:e.y}}}),We={},Ke=Ne,Ge=Te,Ye=De,Xe=Be;We.Arc=Ke,We.Line=Ge,We.Point=Ye,We.Rectangle=Xe;var qe=ie._deprecated,Qe=ie.valueOrDefault;function $e(e,t){var n,r,o,i,a=e._length;for(o=1,i=t.length;o0?Math.min(a,Math.abs(r-n)):a,n=r;return a}function Je(e,t,n){var r,o,i=n.barThickness,a=t.stackCount,l=t.pixels[e],s=ie.isNullOrUndef(i)?$e(t.scale,t.pixels):-1;return ie.isNullOrUndef(i)?(r=s*n.categoryPercentage,o=n.barPercentage):(r=i*a,o=1),{chunk:r/a,ratio:o,start:l-r/2}}function et(e,t,n){var r,o=t.pixels,i=o[e],a=e>0?o[e-1]:null,l=e=0&&m.min>=0?m.min:m.max,E=void 0===m.start?m.end:m.max>=0&&m.min>=0?m.max-m.min:m.min-m.max,w=v.length;if(y||void 0===y&&void 0!==b)for(r=0;r=0&&c.max>=0?c.max:c.min,(m.min<0&&i<0||m.max>=0&&i>0)&&(x+=i));return a=d.getPixelForValue(x),s=(l=d.getPixelForValue(x+E))-a,void 0!==g&&Math.abs(s)=0&&!h||E<0&&h?a-g:a+g),{size:s,base:a,head:l,center:l+s/2}},calculateBarIndexPixels:function(e,t,n,r){var o=this,i="flex"===r.barThickness?et(t,n,r):Je(t,n,r),a=o.getStackIndex(e,o.getMeta().stack),l=i.start+i.chunk*a+i.chunk/2,s=Math.min(Qe(r.maxBarThickness,1/0),i.chunk*i.ratio);return{base:l-s/2,head:l+s/2,center:l,size:s}},draw:function(){var e=this,t=e.chart,n=e._getValueScale(),r=e.getMeta().data,o=e.getDataset(),i=r.length,a=0;for(ie.canvas.clipArea(t.ctx,t.chartArea);a=at?-lt:y<-at?lt:0)+m,x=Math.cos(y),E=Math.sin(y),w=Math.cos(b),C=Math.sin(b),S=y<=0&&b>=0||b>=lt,M=y<=st&&b>=st||b>=lt+st,_=y<=-st&&b>=-st||b>=at+st,N=y===-at||b>=at?-1:Math.min(x,x*v,w,w*v),O=_?-1:Math.min(E,E*v,C,C*v),k=S?1:Math.max(x,x*v,w,w*v),T=M?1:Math.max(E,E*v,C,C*v);c=(k-N)/2,u=(T-O)/2,f=-(k+N)/2,d=-(T+O)/2}for(r=0,o=p.length;r0&&!isNaN(e)?lt*(Math.abs(e)/t):0},getMaxBorderWidth:function(e){var t,n,r,o,i,a,l,s,c=this,u=0,f=c.chart;if(!e)for(t=0,n=f.data.datasets.length;t(u=l>u?l:u)?s:u);return u},setHoverStyle:function(e){var t=e._model,n=e._options,r=ie.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth},t.backgroundColor=it(n.hoverBackgroundColor,r(n.backgroundColor)),t.borderColor=it(n.hoverBorderColor,r(n.borderColor)),t.borderWidth=it(n.hoverBorderWidth,n.borderWidth)},_getRingWeightOffset:function(e){for(var t=0,n=0;n0&&ht(c[e-1]._model,s)&&(n.controlPointPreviousX=u(n.controlPointPreviousX,s.left,s.right),n.controlPointPreviousY=u(n.controlPointPreviousY,s.top,s.bottom)),e0&&(i=e.getDatasetMeta(i[0]._datasetIndex).data),i},"x-axis":function(e,t){return kt(e,t,{intersect:!1})},point:function(e,t){return _t(e,St(t,e))},nearest:function(e,t,n){var r=St(t,e);n.axis=n.axis||"xy";var o=Ot(n.axis);return Nt(e,r,n.intersect,o)},x:function(e,t,n){var r=St(t,e),o=[],i=!1;return Mt(e,(function(e){e.inXRange(r.x)&&o.push(e),e.inRange(r.x,r.y)&&(i=!0)})),n.intersect&&!i&&(o=[]),o},y:function(e,t,n){var r=St(t,e),o=[],i=!1;return Mt(e,(function(e){e.inYRange(r.y)&&o.push(e),e.inRange(r.x,r.y)&&(i=!0)})),n.intersect&&!i&&(o=[]),o}}},Pt=ie.extend;function At(e,t){return ie.where(e,(function(e){return e.pos===t}))}function It(e,t){return e.sort((function(e,n){var r=t?n:e,o=t?e:n;return r.weight===o.weight?r.index-o.index:r.weight-o.weight}))}function Rt(e){var t,n,r,o=[];for(t=0,n=(e||[]).length;t div {\r\n\tposition: absolute;\r\n\twidth: 1000000px;\r\n\theight: 1000000px;\r\n\tleft: 0;\r\n\ttop: 0;\r\n}\r\n\r\n.chartjs-size-monitor-shrink > div {\r\n\tposition: absolute;\r\n\twidth: 200%;\r\n\theight: 200%;\r\n\tleft: 0;\r\n\ttop: 0;\r\n}\r\n",Kt=n(Object.freeze({__proto__:null,default:Wt})),Gt="$chartjs",Yt="chartjs-",Xt=Yt+"size-monitor",qt=Yt+"render-monitor",Qt=Yt+"render-animation",$t=["animationstart","webkitAnimationStart"],Jt={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function en(e,t){var n=ie.getStyle(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?Number(r[1]):void 0}function tn(e,t){var n=e.style,r=e.getAttribute("height"),o=e.getAttribute("width");if(e[Gt]={initial:{height:r,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===o||""===o){var i=en(e,"width");void 0!==i&&(e.width=i)}if(null===r||""===r)if(""===e.style.height)e.height=e.width/(t.options.aspectRatio||2);else{var a=en(e,"height");void 0!==i&&(e.height=a)}return e}var nn=!!function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("e",null,t)}catch(n){}return e}()&&{passive:!0};function rn(e,t,n){e.addEventListener(t,n,nn)}function on(e,t,n){e.removeEventListener(t,n,nn)}function an(e,t,n,r,o){return{type:e,chart:t,native:o||null,x:void 0!==n?n:null,y:void 0!==r?r:null}}function ln(e,t){var n=Jt[e.type]||e.type,r=ie.getRelativePosition(e,t);return an(n,t,r.x,r.y,e)}function sn(e,t){var n=!1,r=[];return function(){r=Array.prototype.slice.call(arguments),t=t||this,n||(n=!0,ie.requestAnimFrame.call(window,(function(){n=!1,e.apply(t,r)})))}}function cn(e){var t=document.createElement("div");return t.className=e||"",t}function un(e){var t=1e6,n=cn(Xt),r=cn(Xt+"-expand"),o=cn(Xt+"-shrink");r.appendChild(cn()),o.appendChild(cn()),n.appendChild(r),n.appendChild(o),n._reset=function(){r.scrollLeft=t,r.scrollTop=t,o.scrollLeft=t,o.scrollTop=t};var i=function(){n._reset(),e()};return rn(r,"scroll",i.bind(r,"expand")),rn(o,"scroll",i.bind(o,"shrink")),n}function fn(e,t){var n=e[Gt]||(e[Gt]={}),r=n.renderProxy=function(e){e.animationName===Qt&&t()};ie.each($t,(function(t){rn(e,t,r)})),n.reflow=!!e.offsetParent,e.classList.add(qt)}function dn(e){var t=e[Gt]||{},n=t.renderProxy;n&&(ie.each($t,(function(t){on(e,t,n)})),delete t.renderProxy),e.classList.remove(qt)}function hn(e,t,n){var r=e[Gt]||(e[Gt]={}),o=r.resizer=un(sn((function(){if(r.resizer){var o=n.options.maintainAspectRatio&&e.parentNode,i=o?o.clientWidth:0;t(an("resize",n)),o&&o.clientWidth0){var i=e[0];i.label?n=i.label:i.xLabel?n=i.xLabel:o>0&&i.index-1?e.split("\n"):e}function _n(e){var t=e._xScale,n=e._yScale||e._scale,r=e._index,o=e._datasetIndex,i=e._chart.getDatasetMeta(o).controller,a=i._getIndexScale(),l=i._getValueScale();return{xLabel:t?t.getLabelForIndex(r,o):"",yLabel:n?n.getLabelForIndex(r,o):"",label:a?""+a.getLabelForIndex(r,o):"",value:l?""+l.getLabelForIndex(r,o):"",index:r,datasetIndex:o,x:e._model.x,y:e._model.y}}function Nn(e){var t=Q.global;return{xPadding:e.xPadding,yPadding:e.yPadding,xAlign:e.xAlign,yAlign:e.yAlign,rtl:e.rtl,textDirection:e.textDirection,bodyFontColor:e.bodyFontColor,_bodyFontFamily:En(e.bodyFontFamily,t.defaultFontFamily),_bodyFontStyle:En(e.bodyFontStyle,t.defaultFontStyle),_bodyAlign:e.bodyAlign,bodyFontSize:En(e.bodyFontSize,t.defaultFontSize),bodySpacing:e.bodySpacing,titleFontColor:e.titleFontColor,_titleFontFamily:En(e.titleFontFamily,t.defaultFontFamily),_titleFontStyle:En(e.titleFontStyle,t.defaultFontStyle),titleFontSize:En(e.titleFontSize,t.defaultFontSize),_titleAlign:e.titleAlign,titleSpacing:e.titleSpacing,titleMarginBottom:e.titleMarginBottom,footerFontColor:e.footerFontColor,_footerFontFamily:En(e.footerFontFamily,t.defaultFontFamily),_footerFontStyle:En(e.footerFontStyle,t.defaultFontStyle),footerFontSize:En(e.footerFontSize,t.defaultFontSize),_footerAlign:e.footerAlign,footerSpacing:e.footerSpacing,footerMarginTop:e.footerMarginTop,caretSize:e.caretSize,cornerRadius:e.cornerRadius,backgroundColor:e.backgroundColor,opacity:0,legendColorBackground:e.multiKeyBackground,displayColors:e.displayColors,borderColor:e.borderColor,borderWidth:e.borderWidth}}function On(e,t){var n=e._chart.ctx,r=2*t.yPadding,o=0,i=t.body,a=i.reduce((function(e,t){return e+t.before.length+t.lines.length+t.after.length}),0);a+=t.beforeBody.length+t.afterBody.length;var l=t.title.length,s=t.footer.length,c=t.titleFontSize,u=t.bodyFontSize,f=t.footerFontSize;r+=l*c,r+=l?(l-1)*t.titleSpacing:0,r+=l?t.titleMarginBottom:0,r+=a*u,r+=a?(a-1)*t.bodySpacing:0,r+=s?t.footerMarginTop:0,r+=s*f,r+=s?(s-1)*t.footerSpacing:0;var d=0,h=function(e){o=Math.max(o,n.measureText(e).width+d)};return n.font=ie.fontString(c,t._titleFontStyle,t._titleFontFamily),ie.each(t.title,h),n.font=ie.fontString(u,t._bodyFontStyle,t._bodyFontFamily),ie.each(t.beforeBody.concat(t.afterBody),h),d=t.displayColors?u+2:0,ie.each(i,(function(e){ie.each(e.before,h),ie.each(e.lines,h),ie.each(e.after,h)})),d=0,n.font=ie.fontString(f,t._footerFontStyle,t._footerFontFamily),ie.each(t.footer,h),{width:o+=2*t.xPadding,height:r}}function kn(e,t){var n,r,o,i,a,l=e._model,s=e._chart,c=e._chart.chartArea,u="center",f="center";l.ys.height-t.height&&(f="bottom");var d=(c.left+c.right)/2,h=(c.top+c.bottom)/2;"center"===f?(n=function(e){return e<=d},r=function(e){return e>d}):(n=function(e){return e<=t.width/2},r=function(e){return e>=s.width-t.width/2}),o=function(e){return e+t.width+l.caretSize+l.caretPadding>s.width},i=function(e){return e-t.width-l.caretSize-l.caretPadding<0},a=function(e){return e<=h?"top":"bottom"},n(l.x)?(u="left",o(l.x)&&(u="center",f=a(l.y))):r(l.x)&&(u="right",i(l.x)&&(u="center",f=a(l.y)));var p=e._options;return{xAlign:p.xAlign?p.xAlign:u,yAlign:p.yAlign?p.yAlign:f}}function Tn(e,t,n,r){var o=e.x,i=e.y,a=e.caretSize,l=e.caretPadding,s=e.cornerRadius,c=n.xAlign,u=n.yAlign,f=a+l,d=s+l;return"right"===c?o-=t.width:"center"===c&&((o-=t.width/2)+t.width>r.width&&(o=r.width-t.width),o<0&&(o=0)),"top"===u?i+=f:i-="bottom"===u?t.height+f:t.height/2,"center"===u?"left"===c?o+=f:"right"===c&&(o-=f):"left"===c?o-=d:"right"===c&&(o+=d),{x:o,y:i}}function Pn(e,t){return"center"===t?e.x+e.width/2:"right"===t?e.x+e.width-e.xPadding:e.x+e.xPadding}function An(e){return Sn([],Mn(e))}var In=he.extend({initialize:function(){this._model=Nn(this._options),this._lastActive=[]},getTitle:function(){var e=this,t=e._options.callbacks,n=t.beforeTitle.apply(e,arguments),r=t.title.apply(e,arguments),o=t.afterTitle.apply(e,arguments),i=[];return i=Sn(i,Mn(n)),i=Sn(i,Mn(r)),i=Sn(i,Mn(o))},getBeforeBody:function(){return An(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(e,t){var n=this,r=n._options.callbacks,o=[];return ie.each(e,(function(e){var i={before:[],lines:[],after:[]};Sn(i.before,Mn(r.beforeLabel.call(n,e,t))),Sn(i.lines,r.label.call(n,e,t)),Sn(i.after,Mn(r.afterLabel.call(n,e,t))),o.push(i)})),o},getAfterBody:function(){return An(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var e=this,t=e._options.callbacks,n=t.beforeFooter.apply(e,arguments),r=t.footer.apply(e,arguments),o=t.afterFooter.apply(e,arguments),i=[];return i=Sn(i,Mn(n)),i=Sn(i,Mn(r)),i=Sn(i,Mn(o))},update:function(e){var t,n,r=this,o=r._options,i=r._model,a=r._model=Nn(o),l=r._active,s=r._data,c={xAlign:i.xAlign,yAlign:i.yAlign},u={x:i.x,y:i.y},f={width:i.width,height:i.height},d={x:i.caretX,y:i.caretY};if(l.length){a.opacity=1;var h=[],p=[];d=Cn[o.position].call(r,l,r._eventPosition);var v=[];for(t=0,n=l.length;t0&&n.stroke()},draw:function(){var e=this._chart.ctx,t=this._view;if(0!==t.opacity){var n={width:t.width,height:t.height},r={x:t.x,y:t.y},o=Math.abs(t.opacity<.001)?0:t.opacity,i=t.title.length||t.beforeBody.length||t.body.length||t.afterBody.length||t.footer.length;this._options.enabled&&i&&(e.save(),e.globalAlpha=o,this.drawBackground(r,t,e,n),r.y+=t.yPadding,ie.rtl.overrideTextDirection(e,t.textDirection),this.drawTitle(r,t,e),this.drawBody(r,t,e),this.drawFooter(r,t,e),ie.rtl.restoreTextDirection(e,t.textDirection),e.restore())}},handleEvent:function(e){var t=this,n=t._options,r=!1;return t._lastActive=t._lastActive||[],"mouseout"===e.type?t._active=[]:(t._active=t._chart.getElementsAtEventForMode(e,n.mode,n),n.reverse&&t._active.reverse()),(r=!ie.arrayEquals(t._active,t._lastActive))&&(t._lastActive=t._active,(n.enabled||n.custom)&&(t._eventPosition={x:e.x,y:e.y},t.update(!0),t.pivot())),r}}),Rn=Cn,Dn=In;Dn.positioners=Rn;var Ln=ie.valueOrDefault;function Zn(){return ie.merge(Object.create(null),[].slice.call(arguments),{merger:function(e,t,n,r){if("xAxes"===e||"yAxes"===e){var o,i,a,l=n[e].length;for(t[e]||(t[e]=[]),o=0;o=t[e].length&&t[e].push({}),!t[e][o].type||a.type&&a.type!==t[e][o].type?ie.merge(t[e][o],[xn.getScaleDefaults(i),a]):ie.merge(t[e][o],a)}else ie._merger(e,t,n,r)}})}function Fn(){return ie.merge(Object.create(null),[].slice.call(arguments),{merger:function(e,t,n,r){var o=t[e]||Object.create(null),i=n[e];"scales"===e?t[e]=Zn(o,i):"scale"===e?t[e]=ie.merge(o,[xn.getScaleDefaults(i.type),i]):ie._merger(e,t,n,r)}})}function jn(e){var t=(e=e||Object.create(null)).data=e.data||{};return t.datasets=t.datasets||[],t.labels=t.labels||[],e.options=Fn(Q.global,Q[e.type],e.options||{}),e}function Un(e){var t=e.options;ie.each(e.scales,(function(t){zt.removeBox(e,t)})),t=Fn(Q.global,Q[e.config.type],t),e.options=e.config.options=t,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=t.tooltips,e.tooltip.initialize()}function Vn(e,t,n){var r,o=function(e){return e.id===r};do{r=t+n++}while(ie.findIndex(e,o)>=0);return r}function Hn(e){return"top"===e||"bottom"===e}function zn(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}Q._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var Bn=function(e,t){return this.construct(e,t),this};ie.extend(Bn.prototype,{construct:function(e,t){var n=this;t=jn(t);var r=yn.acquireContext(e,t),o=r&&r.canvas,i=o&&o.height,a=o&&o.width;n.id=ie.uid(),n.ctx=r,n.canvas=o,n.config=t,n.width=a,n.height=i,n.aspectRatio=i?a/i:null,n.options=t.options,n._bufferedRender=!1,n._layers=[],n.chart=n,n.controller=n,Bn.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(e){n.config.data=e}}),r&&o?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var e=this;return bn.notify(e,"beforeInit"),ie.retinaScale(e,e.options.devicePixelRatio),e.bindEvents(),e.options.responsive&&e.resize(!0),e.initToolTip(),bn.notify(e,"afterInit"),e},clear:function(){return ie.canvas.clear(this),this},stop:function(){return me.cancelAnimation(this),this},resize:function(e){var t=this,n=t.options,r=t.canvas,o=n.maintainAspectRatio&&t.aspectRatio||null,i=Math.max(0,Math.floor(ie.getMaximumWidth(r))),a=Math.max(0,Math.floor(o?i/o:ie.getMaximumHeight(r)));if((t.width!==i||t.height!==a)&&(r.width=t.width=i,r.height=t.height=a,r.style.width=i+"px",r.style.height=a+"px",ie.retinaScale(t,n.devicePixelRatio),!e)){var l={width:i,height:a};bn.notify(t,"resize",[l]),n.onResize&&n.onResize(t,l),t.stop(),t.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var e=this.options,t=e.scales||{},n=e.scale;ie.each(t.xAxes,(function(e,n){e.id||(e.id=Vn(t.xAxes,"x-axis-",n))})),ie.each(t.yAxes,(function(e,n){e.id||(e.id=Vn(t.yAxes,"y-axis-",n))})),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var e=this,t=e.options,n=e.scales||{},r=[],o=Object.keys(n).reduce((function(e,t){return e[t]=!1,e}),{});t.scales&&(r=r.concat((t.scales.xAxes||[]).map((function(e){return{options:e,dtype:"category",dposition:"bottom"}})),(t.scales.yAxes||[]).map((function(e){return{options:e,dtype:"linear",dposition:"left"}})))),t.scale&&r.push({options:t.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),ie.each(r,(function(t){var r=t.options,i=r.id,a=Ln(r.type,t.dtype);Hn(r.position)!==Hn(t.dposition)&&(r.position=t.dposition),o[i]=!0;var l=null;if(i in n&&n[i].type===a)(l=n[i]).options=r,l.ctx=e.ctx,l.chart=e;else{var s=xn.getScaleConstructor(a);if(!s)return;l=new s({id:i,type:a,options:r,ctx:e.ctx,chart:e}),n[l.id]=l}l.mergeTicksOptions(),t.isDefault&&(e.scale=l)})),ie.each(o,(function(e,t){e||delete n[t]})),e.scales=n,xn.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e,t,n=this,r=[],o=n.data.datasets;for(e=0,t=o.length;e=0;--n)r.drawDataset(t[n],e);bn.notify(r,"afterDatasetsDraw",[e])}},drawDataset:function(e,t){var n=this,r={meta:e,index:e.index,easingValue:t};!1!==bn.notify(n,"beforeDatasetDraw",[r])&&(e.controller.draw(t),bn.notify(n,"afterDatasetDraw",[r]))},_drawTooltip:function(e){var t=this,n=t.tooltip,r={tooltip:n,easingValue:e};!1!==bn.notify(t,"beforeTooltipDraw",[r])&&(n.draw(),bn.notify(t,"afterTooltipDraw",[r]))},getElementAtEvent:function(e){return Tt.modes.single(this,e)},getElementsAtEvent:function(e){return Tt.modes.label(this,e,{intersect:!0})},getElementsAtXAxis:function(e){return Tt.modes["x-axis"](this,e,{intersect:!0})},getElementsAtEventForMode:function(e,t,n){var r=Tt.modes[t];return"function"===typeof r?r(this,e,n):[]},getDatasetAtEvent:function(e){return Tt.modes.dataset(this,e,{intersect:!0})},getDatasetMeta:function(e){var t=this,n=t.data.datasets[e];n._meta||(n._meta={});var r=n._meta[t.id];return r||(r=n._meta[t.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n.order||0,index:e}),r},getVisibleDatasetCount:function(){for(var e=0,t=0,n=this.data.datasets.length;t=0;r--){var o=e[r];if(t(o))return o}},ie.isNumber=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},ie.almostEquals=function(e,t,n){return Math.abs(e-t)=e},ie.max=function(e){return e.reduce((function(e,t){return isNaN(t)?e:Math.max(e,t)}),Number.NEGATIVE_INFINITY)},ie.min=function(e){return e.reduce((function(e,t){return isNaN(t)?e:Math.min(e,t)}),Number.POSITIVE_INFINITY)},ie.sign=Math.sign?function(e){return Math.sign(e)}:function(e){return 0===(e=+e)||isNaN(e)?e:e>0?1:-1},ie.toRadians=function(e){return e*(Math.PI/180)},ie.toDegrees=function(e){return e*(180/Math.PI)},ie._decimalPlaces=function(e){if(ie.isFinite(e)){for(var t=1,n=0;Math.round(e*t)/t!==e;)t*=10,n++;return n}},ie.getAngleFromPoint=function(e,t){var n=t.x-e.x,r=t.y-e.y,o=Math.sqrt(n*n+r*r),i=Math.atan2(r,n);return i<-.5*Math.PI&&(i+=2*Math.PI),{angle:i,distance:o}},ie.distanceBetweenPoints=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},ie.aliasPixel=function(e){return e%2===0?0:.5},ie._alignPixel=function(e,t,n){var r=e.currentDevicePixelRatio,o=n/2;return Math.round((t-o)*r)/r+o},ie.splineCurve=function(e,t,n,r){var o=e.skip?t:e,i=t,a=n.skip?t:n,l=Math.sqrt(Math.pow(i.x-o.x,2)+Math.pow(i.y-o.y,2)),s=Math.sqrt(Math.pow(a.x-i.x,2)+Math.pow(a.y-i.y,2)),c=l/(l+s),u=s/(l+s),f=r*(c=isNaN(c)?0:c),d=r*(u=isNaN(u)?0:u);return{previous:{x:i.x-f*(a.x-o.x),y:i.y-f*(a.y-o.y)},next:{x:i.x+d*(a.x-o.x),y:i.y+d*(a.y-o.y)}}},ie.EPSILON=Number.EPSILON||1e-14,ie.splineCurveMonotone=function(e){var t,n,r,o,i,a,l,s,c,u=(e||[]).map((function(e){return{model:e._model,deltaK:0,mK:0}})),f=u.length;for(t=0;t0?u[t-1]:null,(o=t0?u[t-1]:null,o=t=e.length-1?e[0]:e[t+1]:t>=e.length-1?e[e.length-1]:e[t+1]},ie.previousItem=function(e,t,n){return n?t<=0?e[e.length-1]:e[t-1]:t<=0?e[0]:e[t-1]},ie.niceNum=function(e,t){var n=Math.floor(ie.log10(e)),r=e/Math.pow(10,n);return(t?r<1.5?1:r<3?2:r<7?5:10:r<=1?1:r<=2?2:r<=5?5:10)*Math.pow(10,n)},ie.requestAnimFrame="undefined"===typeof window?function(e){e()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)},ie.getRelativePosition=function(e,t){var n,r,o=e.originalEvent||e,i=e.target||e.srcElement,a=i.getBoundingClientRect(),l=o.touches;l&&l.length>0?(n=l[0].clientX,r=l[0].clientY):(n=o.clientX,r=o.clientY);var s=parseFloat(ie.getStyle(i,"padding-left")),c=parseFloat(ie.getStyle(i,"padding-top")),u=parseFloat(ie.getStyle(i,"padding-right")),f=parseFloat(ie.getStyle(i,"padding-bottom")),d=a.right-a.left-s-u,h=a.bottom-a.top-c-f;return{x:n=Math.round((n-a.left-s)/d*i.width/t.currentDevicePixelRatio),y:r=Math.round((r-a.top-c)/h*i.height/t.currentDevicePixelRatio)}},ie.getConstraintWidth=function(e){return n(e,"max-width","clientWidth")},ie.getConstraintHeight=function(e){return n(e,"max-height","clientHeight")},ie._calculatePadding=function(e,t,n){return(t=ie.getStyle(e,t)).indexOf("%")>-1?n*parseInt(t,10)/100:parseInt(t,10)},ie._getParentNode=function(e){var t=e.parentNode;return t&&"[object ShadowRoot]"===t.toString()&&(t=t.host),t},ie.getMaximumWidth=function(e){var t=ie._getParentNode(e);if(!t)return e.clientWidth;var n=t.clientWidth,r=n-ie._calculatePadding(t,"padding-left",n)-ie._calculatePadding(t,"padding-right",n),o=ie.getConstraintWidth(e);return isNaN(o)?r:Math.min(r,o)},ie.getMaximumHeight=function(e){var t=ie._getParentNode(e);if(!t)return e.clientHeight;var n=t.clientHeight,r=n-ie._calculatePadding(t,"padding-top",n)-ie._calculatePadding(t,"padding-bottom",n),o=ie.getConstraintHeight(e);return isNaN(o)?r:Math.min(r,o)},ie.getStyle=function(e,t){return e.currentStyle?e.currentStyle[t]:document.defaultView.getComputedStyle(e,null).getPropertyValue(t)},ie.retinaScale=function(e,t){var n=e.currentDevicePixelRatio=t||"undefined"!==typeof window&&window.devicePixelRatio||1;if(1!==n){var r=e.canvas,o=e.height,i=e.width;r.height=o*n,r.width=i*n,e.ctx.scale(n,n),r.style.height||r.style.width||(r.style.height=o+"px",r.style.width=i+"px")}},ie.fontString=function(e,t,n){return t+" "+e+"px "+n},ie.longestText=function(e,t,n,r){var o=(r=r||{}).data=r.data||{},i=r.garbageCollect=r.garbageCollect||[];r.font!==t&&(o=r.data={},i=r.garbageCollect=[],r.font=t),e.font=t;var a,l,s,c,u,f=0,d=n.length;for(a=0;an.length){for(a=0;ar&&(r=i),r},ie.numberOfLabelLines=function(e){var t=1;return ie.each(e,(function(e){ie.isArray(e)&&e.length>t&&(t=e.length)})),t},ie.color=L?function(e){return e instanceof CanvasGradient&&(e=Q.global.defaultColor),L(e)}:function(e){return console.error("Color.js not found!"),e},ie.getHoverColor=function(e){return e instanceof CanvasPattern||e instanceof CanvasGradient?e:ie.color(e).saturate(.5).darken(.1).rgbString()}};function Gn(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function Yn(e){this.options=e||{}}ie.extend(Yn.prototype,{formats:Gn,parse:Gn,format:Gn,add:Gn,diff:Gn,startOf:Gn,endOf:Gn,_create:function(e){return e}}),Yn.override=function(e){ie.extend(Yn.prototype,e)};var Xn={_date:Yn},qn={formatters:{values:function(e){return ie.isArray(e)?e:""+e},linear:function(e,t,n){var r=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(r)>1&&e!==Math.floor(e)&&(r=e-Math.floor(e));var o=ie.log10(Math.abs(r)),i="";if(0!==e)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var a=ie.log10(Math.abs(e)),l=Math.floor(a)-Math.floor(o);l=Math.max(Math.min(l,20),0),i=e.toExponential(l)}else{var s=-1*Math.floor(o);s=Math.max(Math.min(s,20),0),i=e.toFixed(s)}else i="0";return i},logarithmic:function(e,t,n){var r=e/Math.pow(10,Math.floor(ie.log10(e)));return 0===e?"0":1===r||2===r||5===r||0===t||t===n.length-1?e.toExponential():""}}},Qn=ie.isArray,$n=ie.isNullOrUndef,Jn=ie.valueOrDefault,er=ie.valueAtIndexOrDefault;function tr(e,t){for(var n=[],r=e.length/t,o=0,i=e.length;os+c)))return a}function rr(e,t){ie.each(e,(function(e){var n,r=e.gc,o=r.length/2;if(o>t){for(n=0;nc)return i;return Math.max(c,1)}function dr(e){var t,n,r=[];for(t=0,n=e.length;t=d||u<=1||!l.isHorizontal()?l.labelRotation=f:(t=(e=l._getLabelSizes()).widest.width,n=e.highest.height-e.highest.offset,r=Math.min(l.maxWidth,l.chart.width-t),t+6>(o=s.offset?l.maxWidth/u:r/(u-1))&&(o=r/(u-(s.offset?.5:1)),i=l.maxHeight-ir(s.gridLines)-c.padding-ar(s.scaleLabel),a=Math.sqrt(t*t+n*n),h=ie.toDegrees(Math.min(Math.asin(Math.min((e.highest.height+6)/o,1)),Math.asin(Math.min(i/a,1))-Math.asin(n/a))),h=Math.max(f,Math.min(d,h))),l.labelRotation=h)},afterCalculateTickRotation:function(){ie.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){ie.callback(this.options.beforeFit,[this])},fit:function(){var e=this,t=e.minSize={width:0,height:0},n=e.chart,r=e.options,o=r.ticks,i=r.scaleLabel,a=r.gridLines,l=e._isVisible(),s="bottom"===r.position,c=e.isHorizontal();if(c?t.width=e.maxWidth:l&&(t.width=ir(a)+ar(i)),c?l&&(t.height=ir(a)+ar(i)):t.height=e.maxHeight,o.display&&l){var u=sr(o),f=e._getLabelSizes(),d=f.first,h=f.last,p=f.widest,v=f.highest,m=.4*u.minor.lineHeight,g=o.padding;if(c){var y=0!==e.labelRotation,b=ie.toRadians(e.labelRotation),x=Math.cos(b),E=Math.sin(b),w=E*p.width+x*(v.height-(y?v.offset:0))+(y?0:m);t.height=Math.min(e.maxHeight,t.height+w+g);var C,S,M=e.getPixelForTick(0)-e.left,_=e.right-e.getPixelForTick(e.getTicks().length-1);y?(C=s?x*d.width+E*d.offset:E*(d.height-d.offset),S=s?E*(h.height-h.offset):x*h.width+E*h.offset):(C=d.width/2,S=h.width/2),e.paddingLeft=Math.max((C-M)*e.width/(e.width-M),0)+3,e.paddingRight=Math.max((S-_)*e.width/(e.width-_),0)+3}else{var N=o.mirror?0:p.width+g+m;t.width=Math.min(e.maxWidth,t.width+N),e.paddingTop=d.height/2,e.paddingBottom=h.height/2}}e.handleMargins(),c?(e.width=e._length=n.width-e.margins.left-e.margins.right,e.height=t.height):(e.width=t.width,e.height=e._length=n.height-e.margins.top-e.margins.bottom)},handleMargins:function(){var e=this;e.margins&&(e.margins.left=Math.max(e.paddingLeft,e.margins.left),e.margins.top=Math.max(e.paddingTop,e.margins.top),e.margins.right=Math.max(e.paddingRight,e.margins.right),e.margins.bottom=Math.max(e.paddingBottom,e.margins.bottom))},afterFit:function(){ie.callback(this.options.afterFit,[this])},isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(e){if($n(e))return NaN;if(("number"===typeof e||e instanceof Number)&&!isFinite(e))return NaN;if(e)if(this.isHorizontal()){if(void 0!==e.x)return this.getRightValue(e.x)}else if(void 0!==e.y)return this.getRightValue(e.y);return e},_convertTicksToLabels:function(e){var t,n,r,o=this;for(o.ticks=e.map((function(e){return e.value})),o.beforeTickToLabelConversion(),t=o.convertTicksToLabels(e)||o.ticks,o.afterTickToLabelConversion(),n=0,r=e.length;nr-1?null:t.getPixelForDecimal(e*o+(n?o/2:0))},getPixelForDecimal:function(e){var t=this;return t._reversePixels&&(e=1-e),t._startPixel+e*t._length},getDecimalForPixel:function(e){var t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var e=this,t=e.min,n=e.max;return e.beginAtZero?0:t<0&&n<0?n:t>0&&n>0?t:0},_autoSkip:function(e){var t,n,r,o,i=this,a=i.options.ticks,l=i._length,s=a.maxTicksLimit||l/i._tickSize()+1,c=a.major.enabled?dr(e):[],u=c.length,f=c[0],d=c[u-1];if(u>s)return hr(e,c,u/s),cr(e);if(r=fr(c,e,l,s),u>0){for(t=0,n=u-1;t1?(d-f)/(u-1):null,pr(e,r,ie.isNullOrUndef(o)?0:f-o,f),pr(e,r,d,ie.isNullOrUndef(o)?e.length:d+o),cr(e)}return pr(e,r),cr(e)},_tickSize:function(){var e=this,t=e.options.ticks,n=ie.toRadians(e.labelRotation),r=Math.abs(Math.cos(n)),o=Math.abs(Math.sin(n)),i=e._getLabelSizes(),a=t.autoSkipPadding||0,l=i?i.widest.width+a:0,s=i?i.highest.height+a:0;return e.isHorizontal()?s*r>l*o?l/r:s/o:s*o=0&&(a=e),void 0!==i&&(e=n.indexOf(i))>=0&&(l=e),t.minIndex=a,t.maxIndex=l,t.min=n[a],t.max=n[l]},buildTicks:function(){var e=this,t=e._getLabels(),n=e.minIndex,r=e.maxIndex;e.ticks=0===n&&r===t.length-1?t:t.slice(n,r+1)},getLabelForIndex:function(e,t){var n=this,r=n.chart;return r.getDatasetMeta(t).controller._getValueScaleId()===n.id?n.getRightValue(r.data.datasets[t].data[e]):n._getLabels()[e]},_configure:function(){var e=this,t=e.options.offset,n=e.ticks;mr.prototype._configure.call(e),e.isHorizontal()||(e._reversePixels=!e._reversePixels),n&&(e._startValue=e.minIndex-(t?.5:0),e._valueRange=Math.max(n.length-(t?0:1),1))},getPixelForValue:function(e,t,n){var r,o,i,a=this;return gr(t)||gr(n)||(e=a.chart.data.datasets[n].data[t]),gr(e)||(r=a.isHorizontal()?e.x:e.y),(void 0!==r||void 0!==e&&isNaN(t))&&(o=a._getLabels(),e=ie.valueOrDefault(r,e),t=-1!==(i=o.indexOf(e))?i:t,isNaN(t)&&(t=e)),a.getPixelForDecimal((t-a._startValue)/a._valueRange)},getPixelForTick:function(e){var t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e],e+this.minIndex)},getValueForPixel:function(e){var t=this,n=Math.round(t._startValue+t.getDecimalForPixel(e)*t._valueRange);return Math.min(Math.max(n,0),t.ticks.length-1)},getBasePixel:function(){return this.bottom}}),xr=yr;br._defaults=xr;var Er=ie.noop,wr=ie.isNullOrUndef;function Cr(e,t){var n,r,o,i,a=[],l=1e-14,s=e.stepSize,c=s||1,u=e.maxTicks-1,f=e.min,d=e.max,h=e.precision,p=t.min,v=t.max,m=ie.niceNum((v-p)/u/c)*c;if(mu&&(m=ie.niceNum(i*m/u/c)*c),s||wr(h)?n=Math.pow(10,ie._decimalPlaces(m)):(n=Math.pow(10,h),m=Math.ceil(m*n)/n),r=Math.floor(p/m)*m,o=Math.ceil(v/m)*m,s&&(!wr(f)&&ie.almostWhole(f/m,m/1e3)&&(r=f),!wr(d)&&ie.almostWhole(d/m,m/1e3)&&(o=d)),i=(o-r)/m,i=ie.almostEquals(i,Math.round(i),m/1e3)?Math.round(i):Math.ceil(i),r=Math.round(r*n)/n,o=Math.round(o*n)/n,a.push(wr(f)?r:f);for(var g=1;g0&&r>0&&(e.min=0)}var o=void 0!==t.min||void 0!==t.suggestedMin,i=void 0!==t.max||void 0!==t.suggestedMax;void 0!==t.min?e.min=t.min:void 0!==t.suggestedMin&&(null===e.min?e.min=t.suggestedMin:e.min=Math.min(e.min,t.suggestedMin)),void 0!==t.max?e.max=t.max:void 0!==t.suggestedMax&&(null===e.max?e.max=t.suggestedMax:e.max=Math.max(e.max,t.suggestedMax)),o!==i&&e.min>=e.max&&(o?e.max=e.min+1:e.min=e.max-1),e.min===e.max&&(e.max++,t.beginAtZero||e.min--)},getTickLimit:function(){var e,t=this,n=t.options.ticks,r=n.stepSize,o=n.maxTicksLimit;return r?e=Math.ceil(t.max/r)-Math.floor(t.min/r)+1:(e=t._computeTickLimit(),o=o||11),o&&(e=Math.min(o,e)),e},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:Er,buildTicks:function(){var e=this,t=e.options.ticks,n=e.getTickLimit(),r={maxTicks:n=Math.max(2,n),min:t.min,max:t.max,precision:t.precision,stepSize:ie.valueOrDefault(t.fixedStepSize,t.stepSize)},o=e.ticks=Cr(r,e);e.handleDirectionalChanges(),e.max=ie.max(o),e.min=ie.min(o),t.reverse?(o.reverse(),e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),mr.prototype.convertTicksToLabels.call(e)},_configure:function(){var e,t=this,n=t.getTicks(),r=t.min,o=t.max;mr.prototype._configure.call(t),t.options.offset&&n.length&&(r-=e=(o-r)/Math.max(n.length-1,1)/2,o+=e),t._startValue=r,t._endValue=o,t._valueRange=o-r}}),Mr={position:"left",ticks:{callback:qn.formatters.linear}},_r=0,Nr=1;function Or(e,t,n){var r=[n.type,void 0===t&&void 0===n.stack?n.index:"",n.stack].join(".");return void 0===e[r]&&(e[r]={pos:[],neg:[]}),e[r]}function kr(e,t,n,r){var o,i,a=e.options,l=Or(t,a.stacked,n),s=l.pos,c=l.neg,u=r.length;for(o=0;ot.length-1?null:this.getPixelForValue(t[e])}}),Ar=Mr;Pr._defaults=Ar;var Ir=ie.valueOrDefault,Rr=ie.math.log10;function Dr(e,t){var n,r,o=[],i=Ir(e.min,Math.pow(10,Math.floor(Rr(t.min)))),a=Math.floor(Rr(t.max)),l=Math.ceil(t.max/Math.pow(10,a));0===i?(n=Math.floor(Rr(t.minNotZero)),r=Math.floor(t.minNotZero/Math.pow(10,n)),o.push(i),i=r*Math.pow(10,n)):(n=Math.floor(Rr(i)),r=Math.floor(i/Math.pow(10,n)));var s=n<0?Math.pow(10,Math.abs(n)):1;do{o.push(i),10===++r&&(r=1,s=++n>=0?1:s),i=Math.round(r*Math.pow(10,n)*s)/s}while(n=0?e:t}var Fr=mr.extend({determineDataLimits:function(){var e,t,n,r,o,i,a=this,l=a.options,s=a.chart,c=s.data.datasets,u=a.isHorizontal();function f(e){return u?e.xAxisID===a.id:e.yAxisID===a.id}a.min=Number.POSITIVE_INFINITY,a.max=Number.NEGATIVE_INFINITY,a.minNotZero=Number.POSITIVE_INFINITY;var d=l.stacked;if(void 0===d)for(e=0;e0){var t=ie.min(e),n=ie.max(e);a.min=Math.min(a.min,t),a.max=Math.max(a.max,n)}}))}else for(e=0;e0?e.minNotZero=e.min:e.max<1?e.minNotZero=Math.pow(10,Math.floor(Rr(e.max))):e.minNotZero=n)},buildTicks:function(){var e=this,t=e.options.ticks,n=!e.isHorizontal(),r={min:Zr(t.min),max:Zr(t.max)},o=e.ticks=Dr(r,e);e.max=ie.max(o),e.min=ie.min(o),t.reverse?(n=!n,e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max),n&&o.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),mr.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(e,t){return this._getScaleLabel(this.chart.data.datasets[t].data[e])},getPixelForTick:function(e){var t=this.tickValues;return e<0||e>t.length-1?null:this.getPixelForValue(t[e])},_getFirstTickValue:function(e){var t=Math.floor(Rr(e));return Math.floor(e/Math.pow(10,t))*Math.pow(10,t)},_configure:function(){var e=this,t=e.min,n=0;mr.prototype._configure.call(e),0===t&&(t=e._getFirstTickValue(e.minNotZero),n=Ir(e.options.ticks.fontSize,Q.global.defaultFontSize)/e._length),e._startValue=Rr(t),e._valueOffset=n,e._valueRange=(Rr(e.max)-Rr(t))/(1-n)},getPixelForValue:function(e){var t=this,n=0;return(e=+t.getRightValue(e))>t.min&&e>0&&(n=(Rr(e)-t._startValue)/t._valueRange+t._valueOffset),t.getPixelForDecimal(n)},getValueForPixel:function(e){var t=this,n=t.getDecimalForPixel(e);return 0===n&&0===t.min?0:Math.pow(10,t._startValue+(n-t._valueOffset)*t._valueRange)}}),jr=Lr;Fr._defaults=jr;var Ur=ie.valueOrDefault,Vr=ie.valueAtIndexOrDefault,Hr=ie.options.resolve,zr={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:qn.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(e){return e}}};function Br(e){var t=e.ticks;return t.display&&e.display?Ur(t.fontSize,Q.global.defaultFontSize)+2*t.backdropPaddingY:0}function Wr(e,t,n){return ie.isArray(n)?{w:ie.longestText(e,e.font,n),h:n.length*t}:{w:e.measureText(n).width,h:t}}function Kr(e,t,n,r,o){return e===r||e===o?{start:t-n/2,end:t+n/2}:eo?{start:t-n,end:t}:{start:t,end:t+n}}function Gr(e){var t,n,r,o=ie.options._parseFont(e.options.pointLabels),i={l:0,r:e.width,t:0,b:e.height-e.paddingTop},a={};e.ctx.font=o.string,e._pointLabelSizes=[];var l=e.chart.data.labels.length;for(t=0;ti.r&&(i.r=u.end,a.r=s),f.starti.b&&(i.b=f.end,a.b=s)}e.setReductions(e.drawingArea,i,a)}function Yr(e){return 0===e||180===e?"center":e<180?"left":"right"}function Xr(e,t,n,r){var o,i,a=n.y+r/2;if(ie.isArray(t))for(o=0,i=t.length;o270||e<90)&&(n.y-=t.h)}function Qr(e){var t=e.ctx,n=e.options,r=n.pointLabels,o=Br(n),i=e.getDistanceFromCenterForValue(n.ticks.reverse?e.min:e.max),a=ie.options._parseFont(r);t.save(),t.font=a.string,t.textBaseline="middle";for(var l=e.chart.data.labels.length-1;l>=0;l--){var s=0===l?o/2:0,c=e.getPointPosition(l,i+s+5),u=Vr(r.fontColor,l,Q.global.defaultFontColor);t.fillStyle=u;var f=e.getIndexAngle(l),d=ie.toDegrees(f);t.textAlign=Yr(d),qr(d,e._pointLabelSizes[l],c),Xr(t,e.pointLabels[l],c,a.lineHeight)}t.restore()}function $r(e,t,n,r){var o,i=e.ctx,a=t.circular,l=e.chart.data.labels.length,s=Vr(t.color,r-1),c=Vr(t.lineWidth,r-1);if((a||l)&&s&&c){if(i.save(),i.strokeStyle=s,i.lineWidth=c,i.setLineDash&&(i.setLineDash(t.borderDash||[]),i.lineDashOffset=t.borderDashOffset||0),i.beginPath(),a)i.arc(e.xCenter,e.yCenter,n,0,2*Math.PI);else{o=e.getPointPosition(0,n),i.moveTo(o.x,o.y);for(var u=1;u0&&r>0?n:0)},_drawGrid:function(){var e,t,n,r=this,o=r.ctx,i=r.options,a=i.gridLines,l=i.angleLines,s=Ur(l.lineWidth,a.lineWidth),c=Ur(l.color,a.color);if(i.pointLabels.display&&Qr(r),a.display&&ie.each(r.ticks,(function(e,n){0!==n&&(t=r.getDistanceFromCenterForValue(r.ticksAsNumbers[n]),$r(r,a,t,n))})),l.display&&s&&c){for(o.save(),o.lineWidth=s,o.strokeStyle=c,o.setLineDash&&(o.setLineDash(Hr([l.borderDash,a.borderDash,[]])),o.lineDashOffset=Hr([l.borderDashOffset,a.borderDashOffset,0])),e=r.chart.data.labels.length-1;e>=0;e--)t=r.getDistanceFromCenterForValue(i.ticks.reverse?r.min:r.max),n=r.getPointPosition(e,t),o.beginPath(),o.moveTo(r.xCenter,r.yCenter),o.lineTo(n.x,n.y),o.stroke();o.restore()}},_drawLabels:function(){var e=this,t=e.ctx,n=e.options.ticks;if(n.display){var r,o,i=e.getIndexAngle(0),a=ie.options._parseFont(n),l=Ur(n.fontColor,Q.global.defaultFontColor);t.save(),t.font=a.string,t.translate(e.xCenter,e.yCenter),t.rotate(i),t.textAlign="center",t.textBaseline="middle",ie.each(e.ticks,(function(i,s){(0!==s||n.reverse)&&(r=e.getDistanceFromCenterForValue(e.ticksAsNumbers[s]),n.showLabelBackdrop&&(o=t.measureText(i).width,t.fillStyle=n.backdropColor,t.fillRect(-o/2-n.backdropPaddingX,-r-a.size/2-n.backdropPaddingY,o+2*n.backdropPaddingX,a.size+2*n.backdropPaddingY)),t.fillStyle=l,t.fillText(i,0,-r))})),t.restore()}},_drawTitle:ie.noop}),to=zr;eo._defaults=to;var no=ie._deprecated,ro=ie.options.resolve,oo=ie.valueOrDefault,io=Number.MIN_SAFE_INTEGER||-9007199254740991,ao=Number.MAX_SAFE_INTEGER||9007199254740991,lo={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},so=Object.keys(lo);function co(e,t){return e-t}function uo(e){var t,n,r,o={},i=[];for(t=0,n=e.length;tt&&l=0&&a<=l;){if(o=e[(r=a+l>>1)-1]||null,i=e[r],!o)return{lo:null,hi:i};if(i[t]n))return{lo:o,hi:i};l=r-1}}return{lo:i,hi:null}}function mo(e,t,n,r){var o=vo(e,t,n),i=o.lo?o.hi?o.lo:e[e.length-2]:e[0],a=o.lo?o.hi?o.hi:e[e.length-1]:e[1],l=a[t]-i[t],s=l?(n-i[t])/l:0,c=(a[r]-i[r])*s;return i[r]+c}function go(e,t){var n=e._adapter,r=e.options.time,o=r.parser,i=o||r.format,a=t;return"function"===typeof o&&(a=o(a)),ie.isFinite(a)||(a="string"===typeof i?n.parse(a,i):n.parse(a)),null!==a?+a:(o||"function"!==typeof i||(a=i(t),ie.isFinite(a)||(a=n.parse(a))),a)}function yo(e,t){if(ie.isNullOrUndef(t))return null;var n=e.options.time,r=go(e,e.getRightValue(t));return null===r||n.round&&(r=+e._adapter.startOf(r,n.round)),r}function bo(e,t,n,r){var o,i,a,l=so.length;for(o=so.indexOf(e);o=so.indexOf(n);i--)if(a=so[i],lo[a].common&&e._adapter.diff(o,r,a)>=t-1)return a;return so[n?so.indexOf(n):0]}function Eo(e){for(var t=so.indexOf(e)+1,n=so.length;t1e5*c)throw t+" and "+n+" are too far apart with stepSize of "+c+" "+s;for(o=f;o=0&&(t[i].major=!0);return t}function Mo(e,t,n){var r,o,i=[],a={},l=t.length;for(r=0;r1?uo(p).sort(co):p.sort(co),d=Math.min(d,p[0]),h=Math.max(h,p[p.length-1])),d=yo(l,fo(u))||d,h=yo(l,ho(u))||h,d=d===ao?+c.startOf(Date.now(),f):d,h=h===io?+c.endOf(Date.now(),f)+1:h,l.min=Math.min(d,h),l.max=Math.max(d+1,h),l._table=[],l._timestamps={data:p,datasets:v,labels:m}},buildTicks:function(){var e,t,n,r=this,o=r.min,i=r.max,a=r.options,l=a.ticks,s=a.time,c=r._timestamps,u=[],f=r.getLabelCapacity(o),d=l.source,h=a.distribution;for(c="data"===d||"auto"===d&&"series"===h?c.data:"labels"===d?c.labels:wo(r,o,i,f),"ticks"===a.bounds&&c.length&&(o=c[0],i=c[c.length-1]),o=yo(r,fo(a))||o,i=yo(r,ho(a))||i,e=0,t=c.length;e=o&&n<=i&&u.push(n);return r.min=o,r.max=i,r._unit=s.unit||(l.autoSkip?bo(s.minUnit,r.min,r.max,f):xo(r,u.length,s.minUnit,r.min,r.max)),r._majorUnit=l.major.enabled&&"year"!==r._unit?Eo(r._unit):void 0,r._table=po(r._timestamps.data,o,i,h),r._offsets=Co(r._table,u,o,i,a),l.reverse&&u.reverse(),Mo(r,u,r._majorUnit)},getLabelForIndex:function(e,t){var n=this,r=n._adapter,o=n.chart.data,i=n.options.time,a=o.labels&&e=0&&e0?l:1}}),Oo=_o;No._defaults=Oo;var ko={category:br,linear:Pr,logarithmic:Fr,radialLinear:eo,time:No},To={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};Xn._date.override("function"===typeof e?{_id:"moment",formats:function(){return To},parse:function(t,n){return"string"===typeof t&&"string"===typeof n?t=e(t,n):t instanceof e||(t=e(t)),t.isValid()?t.valueOf():null},format:function(t,n){return e(t).format(n)},add:function(t,n,r){return e(t).add(n,r).valueOf()},diff:function(t,n,r){return e(t).diff(e(n),r)},startOf:function(t,n,r){return t=e(t),"isoWeek"===n?t.isoWeekday(r).valueOf():t.startOf(n).valueOf()},endOf:function(t,n){return e(t).endOf(n).valueOf()},_create:function(t){return e(t)}}:{}),Q._set("global",{plugins:{filler:{propagate:!0}}});var Po={dataset:function(e){var t=e.fill,n=e.chart,r=n.getDatasetMeta(t),o=r&&n.isDatasetVisible(t)&&r.dataset._children||[],i=o.length||0;return i?function(e,t){return t=n)&&r;switch(i){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return i;default:return!1}}function Io(e){var t,n=e.el._model||{},r=e.el._scale||{},o=e.fill,i=null;if(isFinite(o))return null;if("start"===o?i=void 0===n.scaleBottom?r.bottom:n.scaleBottom:"end"===o?i=void 0===n.scaleTop?r.top:n.scaleTop:void 0!==n.scaleZero?i=n.scaleZero:r.getBasePixel&&(i=r.getBasePixel()),void 0!==i&&null!==i){if(void 0!==i.x&&void 0!==i.y)return i;if(ie.isFinite(i))return{x:(t=r.isHorizontal())?i:null,y:t?null:i}}return null}function Ro(e){var t,n,r,o,i,a=e.el._scale,l=a.options,s=a.chart.data.labels.length,c=e.fill,u=[];if(!s)return null;for(t=l.ticks.reverse?a.max:a.min,n=l.ticks.reverse?a.min:a.max,r=a.getPointPositionForValue(0,t),o=0;o0;--i)ie.canvas.lineTo(e,n[i],n[i-1],!0);else for(a=n[0].cx,l=n[0].cy,s=Math.sqrt(Math.pow(n[0].x-a,2)+Math.pow(n[0].y-l,2)),i=o-1;i>0;--i)e.arc(a,l,s,n[i].angle,n[i-1].angle,!0)}}function Uo(e,t,n,r,o,i){var a,l,s,c,u,f,d,h,p=t.length,v=r.spanGaps,m=[],g=[],y=0,b=0;for(e.beginPath(),a=0,l=p;a=0;--n)(t=s[n].$filler)&&t.visible&&(o=(r=t.el)._view,i=r._children||[],a=t.mapper,l=o.backgroundColor||Q.global.defaultColor,a&&l&&i.length&&(ie.canvas.clipArea(c,e.chartArea),Uo(c,i,a,o,l,r._loop),ie.canvas.unclipArea(c)))}},Ho=ie.rtl.getRtlAdapter,zo=ie.noop,Bo=ie.valueOrDefault;function Wo(e,t){return e.usePointStyle&&e.boxWidth>t?t:e.boxWidth}Q._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(e,t){var n=t.datasetIndex,r=this.chart,o=r.getDatasetMeta(n);o.hidden=null===o.hidden?!r.data.datasets[n].hidden:null,r.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(e){var t=e.data.datasets,n=e.options.legend||{},r=n.labels&&n.labels.usePointStyle;return e._getSortedDatasetMetas().map((function(n){var o=n.controller.getStyle(r?0:void 0);return{text:t[n.index].label,fillStyle:o.backgroundColor,hidden:!e.isDatasetVisible(n.index),lineCap:o.borderCapStyle,lineDash:o.borderDash,lineDashOffset:o.borderDashOffset,lineJoin:o.borderJoinStyle,lineWidth:o.borderWidth,strokeStyle:o.borderColor,pointStyle:o.pointStyle,rotation:o.rotation,datasetIndex:n.index}}),this)}}},legendCallback:function(e){var t,n,r,o=document.createElement("ul"),i=e.data.datasets;for(o.setAttribute("class",e.id+"-legend"),t=0,n=i.length;ts.width)&&(f+=a+n.padding,u[u.length-(t>0?0:1)]=0),l[t]={left:0,top:0,width:r,height:a},u[u.length-1]+=r+n.padding})),s.height+=f}else{var d=n.padding,h=e.columnWidths=[],p=e.columnHeights=[],v=n.padding,m=0,g=0;ie.each(e.legendItems,(function(e,t){var r=Wo(n,a)+a/2+o.measureText(e.text).width;t>0&&g+a+2*d>s.height&&(v+=m+n.padding,h.push(m),p.push(g),m=0,g=0),m=Math.max(m,r),g+=a+d,l[t]={left:0,top:0,width:r,height:a}})),v+=m,h.push(m),p.push(g),s.width+=v}e.width=s.width,e.height=s.height}else e.width=s.width=e.height=s.height=0},afterFit:zo,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var e=this,t=e.options,n=t.labels,r=Q.global,o=r.defaultColor,i=r.elements.line,a=e.height,l=e.columnHeights,s=e.width,c=e.lineWidths;if(t.display){var u,f=Ho(t.rtl,e.left,e.minSize.width),d=e.ctx,h=Bo(n.fontColor,r.defaultFontColor),p=ie.options._parseFont(n),v=p.size;d.textAlign=f.textAlign("left"),d.textBaseline="middle",d.lineWidth=.5,d.strokeStyle=h,d.fillStyle=h,d.font=p.string;var m=Wo(n,v),g=e.legendHitBoxes,y=function(e,t,r){if(!(isNaN(m)||m<=0)){d.save();var a=Bo(r.lineWidth,i.borderWidth);if(d.fillStyle=Bo(r.fillStyle,o),d.lineCap=Bo(r.lineCap,i.borderCapStyle),d.lineDashOffset=Bo(r.lineDashOffset,i.borderDashOffset),d.lineJoin=Bo(r.lineJoin,i.borderJoinStyle),d.lineWidth=a,d.strokeStyle=Bo(r.strokeStyle,o),d.setLineDash&&d.setLineDash(Bo(r.lineDash,i.borderDash)),n&&n.usePointStyle){var l=m*Math.SQRT2/2,s=f.xPlus(e,m/2),c=t+v/2;ie.canvas.drawPoint(d,r.pointStyle,l,s,c,r.rotation)}else d.fillRect(f.leftForLtr(e,m),t,m,v),0!==a&&d.strokeRect(f.leftForLtr(e,m),t,m,v);d.restore()}},b=function(e,t,n,r){var o=v/2,i=f.xPlus(e,m+o),a=t+o;d.fillText(n.text,i,a),n.hidden&&(d.beginPath(),d.lineWidth=2,d.moveTo(i,a),d.lineTo(f.xPlus(i,r),a),d.stroke())},x=function(e,r){switch(t.align){case"start":return n.padding;case"end":return e-r;default:return(e-r+n.padding)/2}},E=e.isHorizontal();u=E?{x:e.left+x(s,c[0]),y:e.top+n.padding,line:0}:{x:e.left+n.padding,y:e.top+x(a,l[0]),line:0},ie.rtl.overrideTextDirection(e.ctx,t.textDirection);var w=v+n.padding;ie.each(e.legendItems,(function(t,r){var o=d.measureText(t.text).width,i=m+v/2+o,h=u.x,p=u.y;f.setWidth(e.minSize.width),E?r>0&&h+i+n.padding>e.left+e.minSize.width&&(p=u.y+=w,u.line++,h=u.x=e.left+x(s,c[u.line])):r>0&&p+w>e.top+e.minSize.height&&(h=u.x=h+e.columnWidths[u.line]+n.padding,u.line++,p=u.y=e.top+x(a,l[u.line]));var C=f.x(h);y(C,p,t),g[r].left=f.leftForLtr(C,g[r].width),g[r].top=p,b(C,p,t,o),E?u.x+=i+n.padding:u.y+=w})),ie.rtl.restoreTextDirection(e.ctx,t.textDirection)}},_getLegendItemAt:function(e,t){var n,r,o,i=this;if(e>=i.left&&e<=i.right&&t>=i.top&&t<=i.bottom)for(o=i.legendHitBoxes,n=0;n=(r=o[n]).left&&e<=r.left+r.width&&t>=r.top&&t<=r.top+r.height)return i.legendItems[n];return null},handleEvent:function(e){var t,n=this,r=n.options,o="mouseup"===e.type?"click":e.type;if("mousemove"===o){if(!r.onHover&&!r.onLeave)return}else{if("click"!==o)return;if(!r.onClick)return}t=n._getLegendItemAt(e.x,e.y),"click"===o?t&&r.onClick&&r.onClick.call(n,e.native,t):(r.onLeave&&t!==n._hoveredItem&&(n._hoveredItem&&r.onLeave.call(n,e.native,n._hoveredItem),n._hoveredItem=t),r.onHover&&t&&r.onHover.call(n,e.native,t))}});function Go(e,t){var n=new Ko({ctx:e.ctx,options:t,chart:e});zt.configure(e,n,t),zt.addBox(e,n),e.legend=n}var Yo={id:"legend",_element:Ko,beforeInit:function(e){var t=e.options.legend;t&&Go(e,t)},beforeUpdate:function(e){var t=e.options.legend,n=e.legend;t?(ie.mergeIf(t,Q.global.legend),n?(zt.configure(e,n,t),n.options=t):Go(e,t)):n&&(zt.removeBox(e,n),delete e.legend)},afterEvent:function(e,t){var n=e.legend;n&&n.handleEvent(t)}},Xo=ie.noop;Q._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var qo=he.extend({initialize:function(e){var t=this;ie.extend(t,e),t.legendHitBoxes=[]},beforeUpdate:Xo,update:function(e,t,n){var r=this;return r.beforeUpdate(),r.maxWidth=e,r.maxHeight=t,r.margins=n,r.beforeSetDimensions(),r.setDimensions(),r.afterSetDimensions(),r.beforeBuildLabels(),r.buildLabels(),r.afterBuildLabels(),r.beforeFit(),r.fit(),r.afterFit(),r.afterUpdate(),r.minSize},afterUpdate:Xo,beforeSetDimensions:Xo,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:Xo,beforeBuildLabels:Xo,buildLabels:Xo,afterBuildLabels:Xo,beforeFit:Xo,fit:function(){var e,t=this,n=t.options,r=t.minSize={},o=t.isHorizontal();n.display?(e=(ie.isArray(n.text)?n.text.length:1)*ie.options._parseFont(n).lineHeight+2*n.padding,t.width=r.width=o?t.maxWidth:e,t.height=r.height=o?e:t.maxHeight):t.width=r.width=t.height=r.height=0},afterFit:Xo,isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},draw:function(){var e=this,t=e.ctx,n=e.options;if(n.display){var r,o,i,a=ie.options._parseFont(n),l=a.lineHeight,s=l/2+n.padding,c=0,u=e.top,f=e.left,d=e.bottom,h=e.right;t.fillStyle=ie.valueOrDefault(n.fontColor,Q.global.defaultFontColor),t.font=a.string,e.isHorizontal()?(o=f+(h-f)/2,i=u+s,r=h-f):(o="left"===n.position?f+s:h-s,i=u+(d-u)/2,r=d-u,c=Math.PI*("left"===n.position?-.5:.5)),t.save(),t.translate(o,i),t.rotate(c),t.textAlign="center",t.textBaseline="middle";var p=n.text;if(ie.isArray(p))for(var v=0,m=0;mu))return!1;var d=s.get(e),h=s.get(t);if(d&&h)return d==t&&h==e;var p=-1,v=!0,m=2&n?new r:void 0;for(s.set(e,t),s.set(t,e);++pthis[a])return E(this,this[p].get(e)),!1;var i=this[p].get(e).value;return this[f]&&(this[d]||this[f](e,i.value)),i.now=r,i.maxAge=n,i.value=t,this[l]+=o-i.length,i.length=o,this.get(e),x(this),!0}var c=new w(e,t,o,r,n);return c.length>this[a]?(this[f]&&this[f](e,t),!1):(this[l]+=c.length,this[h].unshift(c),this[p].set(e,this[h].head),x(this),!0)}},{key:"has",value:function(e){if(!this[p].has(e))return!1;var t=this[p].get(e).value;return!b(this,t)}},{key:"get",value:function(e){return y(this,e,!0)}},{key:"peek",value:function(e){return y(this,e,!1)}},{key:"pop",value:function(){var e=this[h].tail;return e?(E(this,e),e.value):null}},{key:"del",value:function(e){E(this,this[p].get(e))}},{key:"load",value:function(e){this.reset();for(var t=Date.now(),n=e.length-1;n>=0;n--){var r=e[n],o=r.e||0;if(0===o)this.set(r.k,r.v);else{var i=o-t;i>0&&this.set(r.k,r.v,i)}}}},{key:"prune",value:function(){var e=this;this[p].forEach((function(t,n){return y(e,n,!1)}))}}]),e}(),y=function(e,t,n){var r=e[p].get(t);if(r){var o=r.value;if(b(e,o)){if(E(e,r),!e[c])return}else n&&(e[v]&&(r.value.now=Date.now()),e[h].unshiftNode(r));return o.value}},b=function(e,t){if(!t||!t.maxAge&&!e[u])return!1;var n=Date.now()-t.now;return t.maxAge?n>t.maxAge:e[u]&&n>e[u]},x=function(e){if(e[l]>e[a])for(var t=e[h].tail;e[l]>e[a]&&null!==t;){var n=t.prev;E(e,t),t=n}},E=function(e,t){if(t){var n=t.value;e[f]&&e[f](n.key,n.value),e[l]-=n.length,e[p].delete(n.key),e[h].removeNode(t)}},w=o((function e(t,n,o,i,a){r(this,e),this.key=t,this.value=n,this.length=o,this.now=i,this.maxAge=a||0})),C=function(e,t,n,r){var o=n.value;b(e,o)&&(E(e,n),e[c]||(o=void 0)),o&&t.call(r,o.value,o.key,e)};e.exports=g},84328:function(e,t,n){"use strict";n.d(t,{Z:function(){return H}});var r=n(87462),o=n(1413),i=n(29439),a=n(45987),l=n(72791),s=n(81694),c=n.n(s),u=n(78039);var f="undefined"!==typeof window&&window.document&&window.document.createElement?l.useLayoutEffect:l.useEffect,d=function(e,t){var n=l.useRef(!0);f((function(){return e(n.current)}),t),f((function(){return n.current=!1,function(){n.current=!0}}),[])},h=d,p=["prefixCls","invalidate","item","renderItem","responsive","responsiveDisabled","registerSize","itemKey","className","style","children","display","order","component"],v=void 0;function m(e,t){var n=e.prefixCls,i=e.invalidate,s=e.item,f=e.renderItem,d=e.responsive,h=e.responsiveDisabled,m=e.registerSize,g=e.itemKey,y=e.className,b=e.style,x=e.children,E=e.display,w=e.order,C=e.component,S=void 0===C?"div":C,M=(0,a.Z)(e,p),_=d&&!E;function N(e){m(g,e)}l.useEffect((function(){return function(){N(null)}}),[]);var O,k=f&&s!==v?f(s):x;i||(O={opacity:_?0:1,height:_?0:v,overflowY:_?"hidden":v,order:d?w:v,pointerEvents:_?"none":v,position:_?"absolute":v});var T={};_&&(T["aria-hidden"]=!0);var P=l.createElement(S,(0,r.Z)({className:c()(!i&&n,y),style:(0,o.Z)((0,o.Z)({},O),b)},T,M,{ref:t}),k);return d&&(P=l.createElement(u.Z,{onResize:function(e){N(e.offsetWidth)},disabled:h},P)),P}var g=l.forwardRef(m);g.displayName="Item";var y=g;var b=n(54164),x=function(e){return+setTimeout(e,16)},E=function(e){return clearTimeout(e)};"undefined"!==typeof window&&"requestAnimationFrame"in window&&(x=function(e){return window.requestAnimationFrame(e)},E=function(e){return window.cancelAnimationFrame(e)});var w=0,C=new Map;function S(e){C.delete(e)}var M=function(e){var t=w+=1;return function n(r){if(0===r)S(t),e();else{var o=x((function(){n(r-1)}));C.set(t,o)}}(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1),t};M.cancel=function(e){var t=C.get(e);return S(t),E(t)};var _=M;function N(){var e=l.useRef(null);return function(t){e.current||(e.current=[],function(e){if("undefined"===typeof MessageChannel)_(e);else{var t=new MessageChannel;t.port1.onmessage=function(){return e()},t.port2.postMessage(void 0)}}((function(){(0,b.unstable_batchedUpdates)((function(){e.current.forEach((function(e){e()})),e.current=null}))}))),e.current.push(t)}}function O(e,t){var n=l.useState(t),r=(0,i.Z)(n,2),o=r[0],a=r[1],s=function(e){var t=l.useRef();t.current=e;var n=l.useCallback((function(){for(var e,n=arguments.length,r=new Array(n),o=0;oC,Ne=(0,l.useMemo)((function(){var e=d;return Se?e=null===z&&D?d:d.slice(0,Math.min(d.length,W/b)):"number"===typeof C&&(e=d.slice(0,C)),e}),[d,b,z,C,Se]),Oe=(0,l.useMemo)((function(){return Se?d.slice(me+1):d.slice(Ne.length)}),[d,Ne,Se,me]),ke=(0,l.useCallback)((function(e,t){var n;return"function"===typeof m?m(e):null!==(n=m&&(null===e||void 0===e?void 0:e[m]))&&void 0!==n?n:t}),[m]),Te=(0,l.useCallback)(p||function(e){return e},[p]);function Pe(e,t,n){(pe!==e||void 0!==t&&t!==ue)&&(ve(e),n||(xe(eW){Pe(r-1,e-o-ae+ne);break}}_&&Ie(0)+ae>W&&fe(null)}}),[W,Y,ne,ae,ke,Ne]);var Re=be&&!!Oe.length,De={};null!==ue&&Se&&(De={position:"absolute",left:ue,top:0});var Le,Ze={prefixCls:Ee,responsive:Se,component:A,invalidate:Me},Fe=v?function(e,t){var n=ke(e,t);return l.createElement(k.Provider,{key:n,value:(0,o.Z)((0,o.Z)({},Ze),{},{order:t,item:e,itemKey:n,registerSize:Ae,display:t<=me})},v(e,t))}:function(e,t){var n=ke(e,t);return l.createElement(y,(0,r.Z)({},Ze,{order:t,key:n,item:e,renderItem:Te,itemKey:n,registerSize:Ae,display:t<=me}))},je={order:Re?me:Number.MAX_SAFE_INTEGER,className:"".concat(Ee,"-rest"),registerSize:function(e,t){re(t),J(ne)},display:Re};if(M)M&&(Le=l.createElement(k.Provider,{value:(0,o.Z)((0,o.Z)({},Ze),je)},M(Oe)));else{var Ue=S||j;Le=l.createElement(y,(0,r.Z)({},Ze,je),"function"===typeof Ue?Ue(Oe):Ue)}var Ve=l.createElement(P,(0,r.Z)({className:c()(!Me&&s,w),style:E,ref:t},R),Ne.map(Fe),_e?Le:null,_&&l.createElement(y,(0,r.Z)({},Ze,{responsive:Ce,responsiveDisabled:!Se,order:me,className:"".concat(Ee,"-suffix"),registerSize:function(e,t){le(t)},display:!0,style:De}),_));return Ce&&(Ve=l.createElement(u.Z,{onResize:function(e,t){B(t.clientWidth)},disabled:!Se},Ve)),Ve}var V=l.forwardRef(U);V.displayName="Overflow",V.Item=D,V.RESPONSIVE=Z,V.INVALIDATE=F;var H=V},1961:function(e,t,n){"use strict";n.d(t,{C:function(){return i}});var r={adjustX:1,adjustY:1},o=[0,0],i={left:{points:["cr","cl"],overflow:r,offset:[-4,0],targetOffset:o},right:{points:["cl","cr"],overflow:r,offset:[4,0],targetOffset:o},top:{points:["bc","tc"],overflow:r,offset:[0,-4],targetOffset:o},bottom:{points:["tc","bc"],overflow:r,offset:[0,4],targetOffset:o},topLeft:{points:["bl","tl"],overflow:r,offset:[0,-4],targetOffset:o},leftTop:{points:["tr","tl"],overflow:r,offset:[-4,0],targetOffset:o},topRight:{points:["br","tr"],overflow:r,offset:[0,-4],targetOffset:o},rightTop:{points:["tl","tr"],overflow:r,offset:[4,0],targetOffset:o},bottomRight:{points:["tr","br"],overflow:r,offset:[0,4],targetOffset:o},rightBottom:{points:["bl","br"],overflow:r,offset:[4,0],targetOffset:o},bottomLeft:{points:["tl","bl"],overflow:r,offset:[0,4],targetOffset:o},leftBottom:{points:["br","bl"],overflow:r,offset:[-4,0],targetOffset:o}}},94869:function(e,t,n){"use strict";n.d(t,{Z:function(){return _t}});var r=n(1413),o=n(87462),i=n(15671),a=n(43144),l=n(97326),s=n(60136),c=n(27277),u=n(4942),f=n(72791),d=n(54164),h=function(e){return+setTimeout(e,16)},p=function(e){return clearTimeout(e)};"undefined"!==typeof window&&"requestAnimationFrame"in window&&(h=function(e){return window.requestAnimationFrame(e)},p=function(e){return window.cancelAnimationFrame(e)});var v=0,m=new Map;function g(e){m.delete(e)}var y=function(e){var t=v+=1;return function n(r){if(0===r)g(t),e();else{var o=h((function(){n(r-1)}));m.set(t,o)}}(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1),t};y.cancel=function(e){var t=m.get(e);return g(t),p(t)};var b=y;function x(e,t){if(!e)return!1;if(e.contains)return e.contains(t);for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}function E(e){return function(e){return e instanceof HTMLElement||e instanceof SVGElement}(e)?e:e instanceof f.Component?d.findDOMNode(e):null}var w=n(71002),C=n(57441);function S(){for(var e=arguments.length,t=new Array(e),n=0;n=0&&n.left>=0&&n.bottom>n.top&&n.right>n.left?n:null}function Pe(e){var t,n,r;if(_e.isWindow(e)||9===e.nodeType){var o=_e.getWindow(e);t={left:_e.getWindowScrollLeft(o),top:_e.getWindowScrollTop(o)},n=_e.viewportWidth(o),r=_e.viewportHeight(o)}else t=_e.offset(e),n=_e.outerWidth(e),r=_e.outerHeight(e);return t.width=n,t.height=r,t}function Ae(e,t){var n=t.charAt(0),r=t.charAt(1),o=e.width,i=e.height,a=e.left,l=e.top;return"c"===n?l+=i/2:"b"===n&&(l+=i),"c"===r?a+=o/2:"r"===r&&(a+=o),{left:a,top:l}}function Ie(e,t,n,r,o){var i=Ae(t,n[1]),a=Ae(e,n[0]),l=[a.left-i.left,a.top-i.top];return{left:Math.round(e.left-l[0]+r[0]-o[0]),top:Math.round(e.top-l[1]+r[1]-o[1])}}function Re(e,t,n){return e.leftn.right}function De(e,t,n){return e.topn.bottom}function Le(e,t,n){var r=[];return _e.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function Ze(e,t){return e[t]=-e[t],e}function Fe(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function je(e,t){e[0]=Fe(e[0],t.width),e[1]=Fe(e[1],t.height)}function Ue(e,t,n,r){var o=n.points,i=n.offset||[0,0],a=n.targetOffset||[0,0],l=n.overflow,s=n.source||e;i=[].concat(i),a=[].concat(a);var c={},u=0,f=Te(s,!(!(l=l||{})||!l.alwaysByViewport)),d=Pe(s);je(i,d),je(a,t);var h=Ie(d,t,o,i,a),p=_e.merge(d,h);if(f&&(l.adjustX||l.adjustY)&&r){if(l.adjustX&&Re(h,d,f)){var v=Le(o,/[lr]/gi,{l:"r",r:"l"}),m=Ze(i,0),g=Ze(a,0);(function(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.left&&o.left+i.width>n.right&&(i.width-=o.left+i.width-n.right),r.adjustX&&o.left+i.width>n.right&&(o.left=Math.max(n.right-i.width,n.left)),r.adjustY&&o.top=n.top&&o.top+i.height>n.bottom&&(i.height-=o.top+i.height-n.bottom),r.adjustY&&o.top+i.height>n.bottom&&(o.top=Math.max(n.bottom-i.height,n.top)),_e.mix(o,i)}(h,d,f,c))}return p.width!==d.width&&_e.css(s,"width",_e.width(s)+p.width-d.width),p.height!==d.height&&_e.css(s,"height",_e.height(s)+p.height-d.height),_e.offset(s,{left:p.left,top:p.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:i,targetOffset:a,overflow:c}}function Ve(e,t,n){var r=n.target||t,o=Pe(r),i=!function(e,t){var n=Te(e,t),r=Pe(e);return!n||r.left+r.width<=n.left||r.top+r.height<=n.top||r.left>=n.right||r.top>=n.bottom}(r,n.overflow&&n.overflow.alwaysByViewport);return Ue(e,o,n,i)}Ve.__getOffsetParent=Oe,Ve.__getVisibleRectForElement=Te;var He={},ze=[];function Be(e,t){}function We(e,t){}function Ke(e,t,n){t||He[n]||(e(!1,n),He[n]=!0)}function Ge(e,t){Ke(Be,e,t)}Ge.preMessage=function(e){ze.push(e)},Ge.resetWarned=function(){He={}},Ge.noteOnce=function(e,t){Ke(We,e,t)};var Ye=Ge;var Xe=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=new Set;return function e(t,o){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=r.has(t);if(Ye(!a,"Warning: There may be circular references"),a)return!1;if(t===o)return!0;if(n&&i>1)return!1;r.add(t);var l=i+1;if(Array.isArray(t)){if(!Array.isArray(o)||t.length!==o.length)return!1;for(var s=0;s=0&&r<=l+c&&o>=0&&o<=s+u,h=[n.points[0],"cc"];return Ue(e,f,j(j({},n),{},{points:h}),d)}(i,s,r)),function(e,t){e!==document.activeElement&&function(e,t){if(!e)return!1;if(e.contains)return e.contains(t);for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}(t,e)&&"function"===typeof e.focus&&e.focus()}(c,i),o&&a&&o(i,a),!0}return!1}),c),g=(0,I.Z)(m,2),y=g[0],b=g[1],x=f.useState(),E=(0,I.Z)(x,2),w=E[0],C=E[1],S=f.useState(),M=(0,I.Z)(S,2),_=M[0],N=M[1];return $e((function(){C(nt(o)),N(rt(o))})),f.useEffect((function(){var e,t;u.current.element===w&&((e=u.current.point)===(t=_)||e&&t&&("pageX"in t&&"pageY"in t?e.pageX===t.pageX&&e.pageY===t.pageY:"clientX"in t&&"clientY"in t&&e.clientX===t.clientX&&e.clientY===t.clientY))&&Xe(u.current.align,i)||y()})),f.useEffect((function(){return tt(h.current,y)}),[h.current]),f.useEffect((function(){return tt(w,y)}),[w]),f.useEffect((function(){r?b():y()}),[r]),f.useEffect((function(){if(l){var e=function(e,t,n,r){var o=d.unstable_batchedUpdates?function(e){d.unstable_batchedUpdates(n,e)}:n;return null!==e&&void 0!==e&&e.addEventListener&&e.addEventListener(t,o,r),{remove:function(){null!==e&&void 0!==e&&e.removeEventListener&&e.removeEventListener(t,o,r)}}}(window,"resize",y);return e.remove}}),[l]),f.useEffect((function(){return function(){b()}}),[]),f.useImperativeHandle(t,(function(){return{forceAlign:function(){return y(!0)}}})),f.isValidElement(p)&&(p=f.cloneElement(p,{ref:Je(p.ref,h)})),p},it=f.forwardRef(ot);it.displayName="Align";var at=it,lt=N()?f.useLayoutEffect:f.useEffect,st=function(e,t){var n=f.useRef(!0);lt((function(){return e(n.current)}),t),lt((function(){return n.current=!1,function(){n.current=!0}}),[])},ct=st,ut=n(74165),ft=n(15861);var dt=["measure","alignPre","align",null,"motion"],ht=function(e,t){var n=function(e){var t=f.useRef(!1),n=f.useState(e),r=(0,I.Z)(n,2),o=r[0],i=r[1];return f.useEffect((function(){return t.current=!1,function(){t.current=!0}}),[]),[o,function(e,n){n&&t.current||i(e)}]}(null),r=(0,I.Z)(n,2),o=r[0],i=r[1],a=(0,f.useRef)();function l(e){i(e,!0)}function s(){b.cancel(a.current)}return(0,f.useEffect)((function(){l("measure")}),[e]),(0,f.useEffect)((function(){if("measure"===o)t();o&&(a.current=b((0,ft.Z)((0,ut.Z)().mark((function e(){var t,n;return(0,ut.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=dt.indexOf(o),(n=dt[t+1])&&-1!==t&&l(n);case 3:case"end":return e.stop()}}),e)})))))}),[o]),(0,f.useEffect)((function(){return function(){s()}}),[]),[o,function(e){s(),a.current=b((function(){l((function(e){switch(o){case"align":return"motion";case"motion":return"stable"}return e})),null===e||void 0===e||e()}))}]},pt=f.forwardRef((function(e,t){var n=e.visible,i=e.prefixCls,a=e.className,l=e.style,s=e.children,c=e.zIndex,u=e.stretch,d=e.destroyPopupOnHide,h=e.forceRender,p=e.align,v=e.point,m=e.getRootDomNode,g=e.getClassNameFromAlign,y=e.onAlign,b=e.onMouseEnter,x=e.onMouseLeave,E=e.onMouseDown,w=e.onTouchStart,C=e.onClick,S=(0,f.useRef)(),M=(0,f.useRef)(),_=(0,f.useState)(),N=(0,I.Z)(_,2),O=N[0],k=N[1],P=function(e){var t=f.useState({width:0,height:0}),n=(0,I.Z)(t,2),r=n[0],o=n[1];return[f.useMemo((function(){var t={};if(e){var n=r.width,o=r.height;-1!==e.indexOf("height")&&o?t.height=o:-1!==e.indexOf("minHeight")&&o&&(t.minHeight=o),-1!==e.indexOf("width")&&n?t.width=n:-1!==e.indexOf("minWidth")&&n&&(t.minWidth=n)}return t}),[e,r]),function(e){var t=e.offsetWidth,n=e.offsetHeight,r=e.getBoundingClientRect(),i=r.width,a=r.height;Math.abs(t-i)<1&&Math.abs(n-a)<1&&(t=i,n=a),o({width:t,height:n})}]}(u),A=(0,I.Z)(P,2),R=A[0],Z=A[1];var F=ht(n,(function(){u&&Z(m())})),j=(0,I.Z)(F,2),U=j[0],V=j[1],H=(0,f.useState)(0),z=(0,I.Z)(H,2),B=z[0],W=z[1],K=(0,f.useRef)();function G(){var e;null===(e=S.current)||void 0===e||e.forceAlign()}function Y(e,t){var n=g(t);O!==n&&k(n),W((function(e){return e+1})),"align"===U&&(null===y||void 0===y||y(e,t))}ct((function(){"alignPre"===U&&W(0)}),[U]),ct((function(){"align"===U&&(B<3?G():V((function(){var e;null===(e=K.current)||void 0===e||e.call(K)})))}),[B]);var X=(0,r.Z)({},L(e));function q(){return new Promise((function(e){K.current=e}))}["onAppearEnd","onEnterEnd","onLeaveEnd"].forEach((function(e){var t=X[e];X[e]=function(e,n){return V(),null===t||void 0===t?void 0:t(e,n)}})),f.useEffect((function(){X.motionName||"motion"!==U||V()}),[X.motionName,U]),f.useImperativeHandle(t,(function(){return{forceAlign:G,getElement:function(){return M.current}}}));var Q=(0,r.Z)((0,r.Z)({},R),{},{zIndex:c,opacity:"motion"!==U&&"stable"!==U&&n?0:void 0,pointerEvents:n||"stable"===U?void 0:"none"},l),$=!0;null===p||void 0===p||!p.points||"align"!==U&&"stable"!==U||($=!1);var J=s;return f.Children.count(s)>1&&(J=f.createElement("div",{className:"".concat(i,"-content")},s)),f.createElement(D.ZP,(0,o.Z)({visible:n,ref:M,leavedClassName:"".concat(i,"-hidden")},X,{onAppearPrepare:q,onEnterPrepare:q,removeOnLeave:d,forceRender:h}),(function(e,t){var n=e.className,o=e.style,l=T()(i,a,O,n);return f.createElement(at,{target:v||m,key:"popup",ref:S,monitorWindowResize:!0,disabled:$,align:p,onAlign:Y},f.createElement("div",{ref:t,className:l,onMouseEnter:b,onMouseLeave:x,onMouseDownCapture:E,onTouchStartCapture:w,onClick:C,style:(0,r.Z)((0,r.Z)({},o),Q)},J))}))}));pt.displayName="PopupInner";var vt=pt,mt=f.forwardRef((function(e,t){var n=e.prefixCls,i=e.visible,a=e.zIndex,l=e.children,s=e.mobile,c=(s=void 0===s?{}:s).popupClassName,u=s.popupStyle,d=s.popupMotion,h=void 0===d?{}:d,p=s.popupRender,v=e.onClick,m=f.useRef();f.useImperativeHandle(t,(function(){return{forceAlign:function(){},getElement:function(){return m.current}}}));var g=(0,r.Z)({zIndex:a},u),y=l;return f.Children.count(l)>1&&(y=f.createElement("div",{className:"".concat(n,"-content")},l)),p&&(y=p(y)),f.createElement(D.ZP,(0,o.Z)({visible:i,ref:m,removeOnLeave:!0},h),(function(e,t){var o=e.className,i=e.style,a=T()(n,c,o);return f.createElement("div",{ref:t,className:a,onClick:v,style:(0,r.Z)((0,r.Z)({},i),g)},y)}))}));mt.displayName="MobilePopupInner";var gt=mt,yt=["visible","mobile"],bt=f.forwardRef((function(e,t){var n=e.visible,i=e.mobile,a=(0,R.Z)(e,yt),l=(0,f.useState)(n),s=(0,I.Z)(l,2),c=s[0],u=s[1],d=(0,f.useState)(!1),h=(0,I.Z)(d,2),p=h[0],v=h[1],m=(0,r.Z)((0,r.Z)({},a),{},{visible:c});(0,f.useEffect)((function(){u(n),n&&i&&v(function(){if("undefined"===typeof navigator||"undefined"===typeof window)return!1;var e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(null===e||void 0===e?void 0:e.substr(0,4))}())}),[n,i]);var g=p?f.createElement(gt,(0,o.Z)({},m,{mobile:i,ref:t})):f.createElement(vt,(0,o.Z)({},m,{ref:t}));return f.createElement("div",null,f.createElement(Z,m),g)}));bt.displayName="Popup";var xt=bt,Et=f.createContext(null);function wt(){}function Ct(){return""}function St(e){return e?e.ownerDocument:window.document}var Mt=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"];var _t=function(e){var t=function(t){(0,s.Z)(h,t);var n=(0,c.Z)(h);function h(e){var t,r;return(0,i.Z)(this,h),t=n.call(this,e),(0,u.Z)((0,l.Z)(t),"popupRef",f.createRef()),(0,u.Z)((0,l.Z)(t),"triggerRef",f.createRef()),(0,u.Z)((0,l.Z)(t),"portalContainer",void 0),(0,u.Z)((0,l.Z)(t),"attachId",void 0),(0,u.Z)((0,l.Z)(t),"clickOutsideHandler",void 0),(0,u.Z)((0,l.Z)(t),"touchOutsideHandler",void 0),(0,u.Z)((0,l.Z)(t),"contextMenuOutsideHandler1",void 0),(0,u.Z)((0,l.Z)(t),"contextMenuOutsideHandler2",void 0),(0,u.Z)((0,l.Z)(t),"mouseDownTimeout",void 0),(0,u.Z)((0,l.Z)(t),"focusTime",void 0),(0,u.Z)((0,l.Z)(t),"preClickTime",void 0),(0,u.Z)((0,l.Z)(t),"preTouchTime",void 0),(0,u.Z)((0,l.Z)(t),"delayTimer",void 0),(0,u.Z)((0,l.Z)(t),"hasPopupMouseDown",void 0),(0,u.Z)((0,l.Z)(t),"onMouseEnter",(function(e){var n=t.props.mouseEnterDelay;t.fireEvents("onMouseEnter",e),t.delaySetPopupVisible(!0,n,n?null:e)})),(0,u.Z)((0,l.Z)(t),"onMouseMove",(function(e){t.fireEvents("onMouseMove",e),t.setPoint(e)})),(0,u.Z)((0,l.Z)(t),"onMouseLeave",(function(e){t.fireEvents("onMouseLeave",e),t.delaySetPopupVisible(!1,t.props.mouseLeaveDelay)})),(0,u.Z)((0,l.Z)(t),"onPopupMouseEnter",(function(){t.clearDelayTimer()})),(0,u.Z)((0,l.Z)(t),"onPopupMouseLeave",(function(e){var n;e.relatedTarget&&!e.relatedTarget.setTimeout&&x(null===(n=t.popupRef.current)||void 0===n?void 0:n.getElement(),e.relatedTarget)||t.delaySetPopupVisible(!1,t.props.mouseLeaveDelay)})),(0,u.Z)((0,l.Z)(t),"onFocus",(function(e){t.fireEvents("onFocus",e),t.clearDelayTimer(),t.isFocusToShow()&&(t.focusTime=Date.now(),t.delaySetPopupVisible(!0,t.props.focusDelay))})),(0,u.Z)((0,l.Z)(t),"onMouseDown",(function(e){t.fireEvents("onMouseDown",e),t.preClickTime=Date.now()})),(0,u.Z)((0,l.Z)(t),"onTouchStart",(function(e){t.fireEvents("onTouchStart",e),t.preTouchTime=Date.now()})),(0,u.Z)((0,l.Z)(t),"onBlur",(function(e){t.fireEvents("onBlur",e),t.clearDelayTimer(),t.isBlurToHide()&&t.delaySetPopupVisible(!1,t.props.blurDelay)})),(0,u.Z)((0,l.Z)(t),"onContextMenu",(function(e){e.preventDefault(),t.fireEvents("onContextMenu",e),t.setPopupVisible(!0,e)})),(0,u.Z)((0,l.Z)(t),"onContextMenuClose",(function(){t.isContextMenuToShow()&&t.close()})),(0,u.Z)((0,l.Z)(t),"onClick",(function(e){if(t.fireEvents("onClick",e),t.focusTime){var n;if(t.preClickTime&&t.preTouchTime?n=Math.min(t.preClickTime,t.preTouchTime):t.preClickTime?n=t.preClickTime:t.preTouchTime&&(n=t.preTouchTime),Math.abs(n-t.focusTime)<20)return;t.focusTime=0}t.preClickTime=0,t.preTouchTime=0,t.isClickToShow()&&(t.isClickToHide()||t.isBlurToHide())&&e&&e.preventDefault&&e.preventDefault();var r=!t.state.popupVisible;(t.isClickToHide()&&!r||r&&t.isClickToShow())&&t.setPopupVisible(!t.state.popupVisible,e)})),(0,u.Z)((0,l.Z)(t),"onPopupMouseDown",(function(){var e;(t.hasPopupMouseDown=!0,clearTimeout(t.mouseDownTimeout),t.mouseDownTimeout=window.setTimeout((function(){t.hasPopupMouseDown=!1}),0),t.context)&&(e=t.context).onPopupMouseDown.apply(e,arguments)})),(0,u.Z)((0,l.Z)(t),"onDocumentClick",(function(e){if(!t.props.mask||t.props.maskClosable){var n=e.target,r=t.getRootDomNode(),o=t.getPopupDomNode();x(r,n)&&!t.isContextMenuOnly()||x(o,n)||t.hasPopupMouseDown||t.close()}})),(0,u.Z)((0,l.Z)(t),"getRootDomNode",(function(){var e=t.props.getTriggerDOMNode;if(e)return e(t.triggerRef.current);try{var n=E(t.triggerRef.current);if(n)return n}catch(r){}return d.findDOMNode((0,l.Z)(t))})),(0,u.Z)((0,l.Z)(t),"getPopupClassNameFromAlign",(function(e){var n=[],r=t.props,o=r.popupPlacement,i=r.builtinPlacements,a=r.prefixCls,l=r.alignPoint,s=r.getPopupClassNameFromAlign;return o&&i&&n.push(function(e,t,n,r){for(var o=n.points,i=Object.keys(e),a=0;a=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t1;if(t&&o&&!r){var i=!1;e.forEach((function(e){e.label||(i=!0)})),i&&console.error('[react-chartjs-2] Warning: Each dataset needs a unique key. By default, the "label" property on each dataset is used. Alternatively, you may provide a "datasetKeyProvider" as a prop that returns a unique key.')}}},{key:"getCurrentDatasets",value:function(){return this.chartInstance&&this.chartInstance.config.data&&this.chartInstance.config.data.datasets||[]}},{key:"saveCurrentDatasets",value:function(){var e=this;this.datasets=this.datasets||{},this.getCurrentDatasets().forEach((function(t){e.datasets[e.props.datasetKeyProvider(t)]=t}))}},{key:"updateChart",value:function(){var e=this,t=this.props.options,n=this.memoizeDataProps(this.props);if(this.chartInstance){t&&(this.chartInstance.options=i.default.helpers.configMerge(this.chartInstance.options,t));var r=this.getCurrentDatasets(),o=n.datasets||[];this.checkDatasets(r);var a=(0,l.default)(r,this.props.datasetKeyProvider);this.chartInstance.config.data.datasets=o.map((function(t){var n=a[e.props.datasetKeyProvider(t)];if(n&&n.type===t.type&&t.data){n.data.splice(t.data.length),t.data.forEach((function(e,r){n.data[r]=t.data[r]}));t.data;var r=f(t,["data"]);return h(h({},n),r)}return t}));n.datasets;var s=f(n,["datasets"]);this.chartInstance.config.data=h(h({},this.chartInstance.config.data),s),this.chartInstance.update()}}},{key:"renderChart",value:function(){var e=this.props,t=e.options,r=e.legend,o=e.type,l=e.plugins,s=this.element,c=this.memoizeDataProps();"undefined"===typeof r||(0,a.default)(n.defaultProps.legend,r)||(t.legend=r),this.chartInstance=new i.default(s,{type:o,data:c,options:t,plugins:l})}},{key:"destroyChart",value:function(){if(this.chartInstance){this.saveCurrentDatasets();var e=Object.values(this.datasets);this.chartInstance.config.data.datasets=e,this.chartInstance.destroy()}}},{key:"render",value:function(){var e=this.props,t=e.height,n=e.width,o=e.id;return r.default.createElement("canvas",{ref:this.ref,height:t,width:n,id:o,onClick:this.handleOnClick})}}]),n}(r.default.Component);w(S,"getLabelAsKey",(function(e){return e.label})),w(S,"propTypes",{data:o.default.oneOfType([o.default.object,o.default.func]).isRequired,getDatasetAtEvent:o.default.func,getElementAtEvent:o.default.func,getElementsAtEvent:o.default.func,height:o.default.number,legend:o.default.object,onElementsClick:o.default.func,options:o.default.object,plugins:o.default.arrayOf(o.default.object),redraw:o.default.bool,type:function(e,t,n){if(!i.default.controllers[e[t]])return new Error("Invalid chart type `"+e[t]+"` supplied to `"+n+"`.")},width:o.default.number,datasetKeyProvider:o.default.func}),w(S,"defaultProps",{legend:{display:!0,position:"bottom"},type:"doughnut",height:150,width:300,redraw:!1,options:{},datasetKeyProvider:S.getLabelAsKey});var M=function(e){g(n,e);var t=b(n);function n(){return p(this,n),t.apply(this,arguments)}return m(n,[{key:"render",value:function(){var e=this;return r.default.createElement(S,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"doughnut"}))}}]),n}(r.default.Component);var _=function(e){g(n,e);var t=b(n);function n(){return p(this,n),t.apply(this,arguments)}return m(n,[{key:"render",value:function(){var e=this;return r.default.createElement(S,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"pie"}))}}]),n}(r.default.Component);var N=function(e){g(n,e);var t=b(n);function n(){return p(this,n),t.apply(this,arguments)}return m(n,[{key:"render",value:function(){var e=this;return r.default.createElement(S,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"line"}))}}]),n}(r.default.Component);var O=function(e){g(n,e);var t=b(n);function n(){return p(this,n),t.apply(this,arguments)}return m(n,[{key:"render",value:function(){var e=this;return r.default.createElement(S,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"bar"}))}}]),n}(r.default.Component);var k=function(e){g(n,e);var t=b(n);function n(){return p(this,n),t.apply(this,arguments)}return m(n,[{key:"render",value:function(){var e=this;return r.default.createElement(S,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"horizontalBar"}))}}]),n}(r.default.Component);var T=function(e){g(n,e);var t=b(n);function n(){return p(this,n),t.apply(this,arguments)}return m(n,[{key:"render",value:function(){var e=this;return r.default.createElement(S,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"radar"}))}}]),n}(r.default.Component);var P=function(e){g(n,e);var t=b(n);function n(){return p(this,n),t.apply(this,arguments)}return m(n,[{key:"render",value:function(){var e=this;return r.default.createElement(S,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"polarArea"}))}}]),n}(r.default.Component);var A=function(e){g(n,e);var t=b(n);function n(){return p(this,n),t.apply(this,arguments)}return m(n,[{key:"render",value:function(){var e=this;return r.default.createElement(S,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"bubble"}))}}]),n}(r.default.Component);var I=function(e){g(n,e);var t=b(n);function n(){return p(this,n),t.apply(this,arguments)}return m(n,[{key:"render",value:function(){var e=this;return r.default.createElement(S,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"scatter"}))}}]),n}(r.default.Component);i.default.defaults},98981:function(e,t,n){var r=n(56690).default,o=n(89728).default,i=Symbol("SemVer ANY"),a=function(){"use strict";function e(t,n){if(r(this,e),n=l(n),t instanceof e){if(t.loose===!!n.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),d("comparator",t,n),this.options=n,this.loose=!!n.loose,this.parse(t),this.semver===i?this.value="":this.value=this.operator+this.semver.version,d("comp",this)}return o(e,[{key:"parse",value:function(e){var t=this.options.loose?c[u.COMPARATORLOOSE]:c[u.COMPARATOR],n=e.match(t);if(!n)throw new TypeError("Invalid comparator: ".concat(e));this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new h(n[2],this.options.loose):this.semver=i}},{key:"toString",value:function(){return this.value}},{key:"test",value:function(e){if(d("Comparator.test",e,this.options.loose),this.semver===i||e===i)return!0;if("string"===typeof e)try{e=new h(e,this.options)}catch(t){return!1}return f(e,this.operator,this.semver,this.options)}},{key:"intersects",value:function(t,n){if(!(t instanceof e))throw new TypeError("a Comparator is required");return""===this.operator?""===this.value||new p(t.value,n).test(this.value):""===t.operator?""===t.value||new p(this.value,n).test(t.semver):(!(n=l(n)).includePrerelease||"<0.0.0-0"!==this.value&&"<0.0.0-0"!==t.value)&&(!(!n.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0")))&&(!(!this.operator.startsWith(">")||!t.operator.startsWith(">"))||(!(!this.operator.startsWith("<")||!t.operator.startsWith("<"))||(!(this.semver.version!==t.semver.version||!this.operator.includes("=")||!t.operator.includes("="))||(!!(f(this.semver,"<",t.semver,n)&&this.operator.startsWith(">")&&t.operator.startsWith("<"))||!!(f(this.semver,">",t.semver,n)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))))))}}],[{key:"ANY",get:function(){return i}}]),e}();e.exports=a;var l=n(88270),s=n(35446),c=s.safeRe,u=s.t,f=n(42907),d=n(89304),h=n(63298),p=n(50487)},50487:function(e,t,n){var r=n(861).default,o=n(74704).default,i=n(56690).default,a=n(89728).default,l=function(){"use strict";function e(t,n){var r=this;if(i(this,e),n=c(n),t instanceof e)return t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease?t:new e(t.raw,n);if(t instanceof u)return this.raw=t.value,this.set=[[t]],this.format(),this;if(this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease,this.raw=t.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map((function(e){return r.parseRange(e.trim())})).filter((function(e){return e.length})),!this.set.length)throw new TypeError("Invalid SemVer Range: ".concat(this.raw));if(this.set.length>1){var a=this.set[0];if(this.set=this.set.filter((function(e){return!w(e[0])})),0===this.set.length)this.set=[a];else if(this.set.length>1){var l,s=o(this.set);try{for(s.s();!(l=s.n()).done;){var f=l.value;if(1===f.length&&C(f[0])){this.set=[f];break}}}catch(d){s.e(d)}finally{s.f()}}}this.format()}return a(e,[{key:"format",value:function(){return this.range=this.set.map((function(e){return e.join(" ").trim()})).join("||").trim(),this.range}},{key:"toString",value:function(){return this.range}},{key:"parseRange",value:function(e){var t=this,n=((this.options.includePrerelease&&x)|(this.options.loose&&E))+":"+e,i=s.get(n);if(i)return i;var a=this.options.loose,l=a?p[v.HYPHENRANGELOOSE]:p[v.HYPHENRANGE];e=e.replace(l,D(this.options.includePrerelease)),f("hyphen replace",e),e=e.replace(p[v.COMPARATORTRIM],m),f("comparator trim",e),e=e.replace(p[v.TILDETRIM],g),f("tilde trim",e),e=e.replace(p[v.CARETTRIM],y),f("caret trim",e);var c=e.split(" ").map((function(e){return M(e,t.options)})).join(" ").split(/\s+/).map((function(e){return R(e,t.options)}));a&&(c=c.filter((function(e){return f("loose invalid filter",e,t.options),!!e.match(p[v.COMPARATORLOOSE])}))),f("range list",c);var d,h=new Map,b=c.map((function(e){return new u(e,t.options)})),C=o(b);try{for(C.s();!(d=C.n()).done;){var S=d.value;if(w(S))return[S];h.set(S.value,S)}}catch(N){C.e(N)}finally{C.f()}h.size>1&&h.has("")&&h.delete("");var _=r(h.values());return s.set(n,_),_}},{key:"intersects",value:function(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some((function(e){return S(e,n)&&t.set.some((function(t){return S(t,n)&&e.every((function(e){return t.every((function(t){return e.intersects(t,n)}))}))}))}))}},{key:"test",value:function(e){if(!e)return!1;if("string"===typeof e)try{e=new d(e,this.options)}catch(n){return!1}for(var t=0;t=".concat(n,".").concat(o,".0").concat(r," <").concat(n,".").concat(+o+1,".0-0"):">=".concat(n,".").concat(o,".0").concat(r," <").concat(+n+1,".0.0-0"):a?(f("replaceCaret pr",a),l="0"===n?"0"===o?">=".concat(n,".").concat(o,".").concat(i,"-").concat(a," <").concat(n,".").concat(o,".").concat(+i+1,"-0"):">=".concat(n,".").concat(o,".").concat(i,"-").concat(a," <").concat(n,".").concat(+o+1,".0-0"):">=".concat(n,".").concat(o,".").concat(i,"-").concat(a," <").concat(+n+1,".0.0-0")):(f("no pr"),l="0"===n?"0"===o?">=".concat(n,".").concat(o,".").concat(i).concat(r," <").concat(n,".").concat(o,".").concat(+i+1,"-0"):">=".concat(n,".").concat(o,".").concat(i).concat(r," <").concat(n,".").concat(+o+1,".0-0"):">=".concat(n,".").concat(o,".").concat(i," <").concat(+n+1,".0.0-0")),f("caret return",l),l}))},P=function(e,t){return f("replaceXRanges",e,t),e.split(/\s+/).map((function(e){return A(e,t)})).join(" ")},A=function(e,t){e=e.trim();var n=t.loose?p[v.XRANGELOOSE]:p[v.XRANGE];return e.replace(n,(function(n,r,o,i,a,l){f("xRange",e,n,r,o,i,a,l);var s=_(o),c=s||_(i),u=c||_(a),d=u;return"="===r&&d&&(r=""),l=t.includePrerelease?"-0":"",s?n=">"===r||"<"===r?"<0.0.0-0":"*":r&&d?(c&&(i=0),a=0,">"===r?(r=">=",c?(o=+o+1,i=0,a=0):(i=+i+1,a=0)):"<="===r&&(r="<",c?o=+o+1:i=+i+1),"<"===r&&(l="-0"),n="".concat(r+o,".").concat(i,".").concat(a).concat(l)):c?n=">=".concat(o,".0.0").concat(l," <").concat(+o+1,".0.0-0"):u&&(n=">=".concat(o,".").concat(i,".0").concat(l," <").concat(o,".").concat(+i+1,".0-0")),f("xRange return",n),n}))},I=function(e,t){return f("replaceStars",e,t),e.trim().replace(p[v.STAR],"")},R=function(e,t){return f("replaceGTE0",e,t),e.trim().replace(p[t.includePrerelease?v.GTE0PRE:v.GTE0],"")},D=function(e){return function(t,n,r,o,i,a,l,s,c,u,f,d,h){return n=_(r)?"":_(o)?">=".concat(r,".0.0").concat(e?"-0":""):_(i)?">=".concat(r,".").concat(o,".0").concat(e?"-0":""):a?">=".concat(n):">=".concat(n).concat(e?"-0":""),s=_(c)?"":_(u)?"<".concat(+c+1,".0.0-0"):_(f)?"<".concat(c,".").concat(+u+1,".0-0"):d?"<=".concat(c,".").concat(u,".").concat(f,"-").concat(d):e?"<".concat(c,".").concat(u,".").concat(+f+1,"-0"):"<=".concat(s),"".concat(n," ").concat(s).trim()}},L=function(e,t,n){for(var r=0;r0){var i=e[o].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}},63298:function(e,t,n){var r=n(56690).default,o=n(89728).default,i=n(89304),a=n(99836),l=a.MAX_LENGTH,s=a.MAX_SAFE_INTEGER,c=n(35446),u=c.safeRe,f=c.t,d=n(88270),h=n(33228).compareIdentifiers,p=function(){"use strict";function e(t,n){if(r(this,e),n=d(n),t instanceof e){if(t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease)return t;t=t.version}else if("string"!==typeof t)throw new TypeError('Invalid version. Must be a string. Got type "'.concat(typeof t,'".'));if(t.length>l)throw new TypeError("version is longer than ".concat(l," characters"));i("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;var o=t.trim().match(n.loose?u[f.LOOSE]:u[f.FULL]);if(!o)throw new TypeError("Invalid Version: ".concat(t));if(this.raw=t,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>s||this.major<0)throw new TypeError("Invalid major version");if(this.minor>s||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>s||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map((function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t=0;)"number"===typeof this.prerelease[o]&&(this.prerelease[o]++,o=-2);if(-1===o){if(t===this.prerelease.join(".")&&!1===n)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(r)}}if(t){var i=[t,r];!1===n&&(i=[t]),0===h(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break;default:throw new Error("invalid increment argument: ".concat(e))}return this.raw=this.format(),this.build.length&&(this.raw+="+".concat(this.build.join("."))),this}}]),e}();e.exports=p},65365:function(e,t,n){var r=n(17985);e.exports=function(e,t){var n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null}},42907:function(e,t,n){var r=n(45378),o=n(69078),i=n(84544),a=n(16310),l=n(94562),s=n(27532);e.exports=function(e,t,n,c){switch(t){case"===":return"object"===typeof e&&(e=e.version),"object"===typeof n&&(n=n.version),e===n;case"!==":return"object"===typeof e&&(e=e.version),"object"===typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return r(e,n,c);case"!=":return o(e,n,c);case">":return i(e,n,c);case">=":return a(e,n,c);case"<":return l(e,n,c);case"<=":return s(e,n,c);default:throw new TypeError("Invalid operator: ".concat(t))}}},25071:function(e,t,n){var r=n(63298),o=n(17985),i=n(35446),a=i.safeRe,l=i.t;e.exports=function(e,t){if(e instanceof r)return e;if("number"===typeof e&&(e=String(e)),"string"!==typeof e)return null;var n=null;if((t=t||{}).rtl){for(var i;(i=a[l.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&i.index+i[0].length===n.index+n[0].length||(n=i),a[l.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;a[l.COERCERTL].lastIndex=-1}else n=e.match(a[l.COERCE]);return null===n?null:o("".concat(n[2],".").concat(n[3]||"0",".").concat(n[4]||"0"),t)}},40136:function(e,t,n){var r=n(63298);e.exports=function(e,t,n){var o=new r(e,n),i=new r(t,n);return o.compare(i)||o.compareBuild(i)}},70832:function(e,t,n){var r=n(92384);e.exports=function(e,t){return r(e,t,!0)}},92384:function(e,t,n){var r=n(63298);e.exports=function(e,t,n){return new r(e,n).compare(new r(t,n))}},50639:function(e,t,n){var r=n(17985);e.exports=function(e,t){var n=r(e,null,!0),o=r(t,null,!0),i=n.compare(o);if(0===i)return null;var a=i>0,l=a?n:o,s=a?o:n,c=!!l.prerelease.length;if(!!s.prerelease.length&&!c)return s.patch||s.minor?l.patch?"patch":l.minor?"minor":"major":"major";var u=c?"pre":"";return n.major!==o.major?u+"major":n.minor!==o.minor?u+"minor":n.patch!==o.patch?u+"patch":"prerelease"}},45378:function(e,t,n){var r=n(92384);e.exports=function(e,t,n){return 0===r(e,t,n)}},84544:function(e,t,n){var r=n(92384);e.exports=function(e,t,n){return r(e,t,n)>0}},16310:function(e,t,n){var r=n(92384);e.exports=function(e,t,n){return r(e,t,n)>=0}},46778:function(e,t,n){var r=n(63298);e.exports=function(e,t,n,o,i){"string"===typeof n&&(i=o,o=n,n=void 0);try{return new r(e instanceof r?e.version:e,n).inc(t,o,i).version}catch(a){return null}}},94562:function(e,t,n){var r=n(92384);e.exports=function(e,t,n){return r(e,t,n)<0}},27532:function(e,t,n){var r=n(92384);e.exports=function(e,t,n){return r(e,t,n)<=0}},62750:function(e,t,n){var r=n(63298);e.exports=function(e,t){return new r(e,t).major}},84184:function(e,t,n){var r=n(63298);e.exports=function(e,t){return new r(e,t).minor}},69078:function(e,t,n){var r=n(92384);e.exports=function(e,t,n){return 0!==r(e,t,n)}},17985:function(e,t,n){var r=n(63298);e.exports=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(e instanceof r)return e;try{return new r(e,t)}catch(o){if(!n)return null;throw o}}},85093:function(e,t,n){var r=n(63298);e.exports=function(e,t){return new r(e,t).patch}},89361:function(e,t,n){var r=n(17985);e.exports=function(e,t){var n=r(e,t);return n&&n.prerelease.length?n.prerelease:null}},8111:function(e,t,n){var r=n(92384);e.exports=function(e,t,n){return r(t,e,n)}},6658:function(e,t,n){var r=n(40136);e.exports=function(e,t){return e.sort((function(e,n){return r(n,e,t)}))}},52529:function(e,t,n){var r=n(50487);e.exports=function(e,t,n){try{t=new r(t,n)}catch(o){return!1}return t.test(e)}},3462:function(e,t,n){var r=n(40136);e.exports=function(e,t){return e.sort((function(e,n){return r(e,n,t)}))}},16793:function(e,t,n){var r=n(17985);e.exports=function(e,t){var n=r(e,t);return n?n.version:null}},10724:function(e,t,n){var r=n(35446),o=n(99836),i=n(63298),a=n(33228),l=n(17985),s=n(16793),c=n(65365),u=n(46778),f=n(50639),d=n(62750),h=n(84184),p=n(85093),v=n(89361),m=n(92384),g=n(8111),y=n(70832),b=n(40136),x=n(3462),E=n(6658),w=n(84544),C=n(94562),S=n(45378),M=n(69078),_=n(16310),N=n(27532),O=n(42907),k=n(25071),T=n(98981),P=n(50487),A=n(52529),I=n(27545),R=n(94774),D=n(36088),L=n(11219),Z=n(81383),F=n(12643),j=n(7281),U=n(45675),V=n(38772),H=n(54934),z=n(16669);e.exports={parse:l,valid:s,clean:c,inc:u,diff:f,major:d,minor:h,patch:p,prerelease:v,compare:m,rcompare:g,compareLoose:y,compareBuild:b,sort:x,rsort:E,gt:w,lt:C,eq:S,neq:M,gte:_,lte:N,cmp:O,coerce:k,Comparator:T,Range:P,satisfies:A,toComparators:I,maxSatisfying:R,minSatisfying:D,minVersion:L,validRange:Z,outside:F,gtr:j,ltr:U,intersects:V,simplifyRange:H,subset:z,SemVer:i,re:r.re,src:r.src,tokens:r.t,SEMVER_SPEC_VERSION:o.SEMVER_SPEC_VERSION,RELEASE_TYPES:o.RELEASE_TYPES,compareIdentifiers:a.compareIdentifiers,rcompareIdentifiers:a.rcompareIdentifiers}},99836:function(e){var t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:t,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}},89304:function(e){var t="object"===typeof process&&{NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.NODE_DEBUG&&/\bsemver\b/i.test({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.NODE_DEBUG)?function(){for(var e,t=arguments.length,n=new Array(t),r=0;r)?=?)"),m("XRANGEIDENTIFIERLOOSE","".concat(f[d.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),m("XRANGEIDENTIFIER","".concat(f[d.NUMERICIDENTIFIER],"|x|X|\\*")),m("XRANGEPLAIN","[v=\\s]*(".concat(f[d.XRANGEIDENTIFIER],")")+"(?:\\.(".concat(f[d.XRANGEIDENTIFIER],")")+"(?:\\.(".concat(f[d.XRANGEIDENTIFIER],")")+"(?:".concat(f[d.PRERELEASE],")?").concat(f[d.BUILD],"?")+")?)?"),m("XRANGEPLAINLOOSE","[v=\\s]*(".concat(f[d.XRANGEIDENTIFIERLOOSE],")")+"(?:\\.(".concat(f[d.XRANGEIDENTIFIERLOOSE],")")+"(?:\\.(".concat(f[d.XRANGEIDENTIFIERLOOSE],")")+"(?:".concat(f[d.PRERELEASELOOSE],")?").concat(f[d.BUILD],"?")+")?)?"),m("XRANGE","^".concat(f[d.GTLT],"\\s*").concat(f[d.XRANGEPLAIN],"$")),m("XRANGELOOSE","^".concat(f[d.GTLT],"\\s*").concat(f[d.XRANGEPLAINLOOSE],"$")),m("COERCE","".concat("(^|[^\\d])(\\d{1,").concat(i,"})")+"(?:\\.(\\d{1,".concat(i,"}))?")+"(?:\\.(\\d{1,".concat(i,"}))?")+"(?:$|[^\\d])"),m("COERCERTL",f[d.COERCE],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM","(\\s*)".concat(f[d.LONETILDE],"\\s+"),!0),t.tildeTrimReplace="$1~",m("TILDE","^".concat(f[d.LONETILDE]).concat(f[d.XRANGEPLAIN],"$")),m("TILDELOOSE","^".concat(f[d.LONETILDE]).concat(f[d.XRANGEPLAINLOOSE],"$")),m("LONECARET","(?:\\^)"),m("CARETTRIM","(\\s*)".concat(f[d.LONECARET],"\\s+"),!0),t.caretTrimReplace="$1^",m("CARET","^".concat(f[d.LONECARET]).concat(f[d.XRANGEPLAIN],"$")),m("CARETLOOSE","^".concat(f[d.LONECARET]).concat(f[d.XRANGEPLAINLOOSE],"$")),m("COMPARATORLOOSE","^".concat(f[d.GTLT],"\\s*(").concat(f[d.LOOSEPLAIN],")$|^$")),m("COMPARATOR","^".concat(f[d.GTLT],"\\s*(").concat(f[d.FULLPLAIN],")$|^$")),m("COMPARATORTRIM","(\\s*)".concat(f[d.GTLT],"\\s*(").concat(f[d.LOOSEPLAIN],"|").concat(f[d.XRANGEPLAIN],")"),!0),t.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE","^\\s*(".concat(f[d.XRANGEPLAIN],")")+"\\s+-\\s+"+"(".concat(f[d.XRANGEPLAIN],")")+"\\s*$"),m("HYPHENRANGELOOSE","^\\s*(".concat(f[d.XRANGEPLAINLOOSE],")")+"\\s+-\\s+"+"(".concat(f[d.XRANGEPLAINLOOSE],")")+"\\s*$"),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")},7281:function(e,t,n){var r=n(12643);e.exports=function(e,t,n){return r(e,t,">",n)}},38772:function(e,t,n){var r=n(50487);e.exports=function(e,t,n){return e=new r(e,n),t=new r(t,n),e.intersects(t,n)}},45675:function(e,t,n){var r=n(12643);e.exports=function(e,t,n){return r(e,t,"<",n)}},94774:function(e,t,n){var r=n(63298),o=n(50487);e.exports=function(e,t,n){var i=null,a=null,l=null;try{l=new o(t,n)}catch(s){return null}return e.forEach((function(e){l.test(e)&&(i&&-1!==a.compare(e)||(a=new r(i=e,n)))})),i}},36088:function(e,t,n){var r=n(63298),o=n(50487);e.exports=function(e,t,n){var i=null,a=null,l=null;try{l=new o(t,n)}catch(s){return null}return e.forEach((function(e){l.test(e)&&(i&&1!==a.compare(e)||(a=new r(i=e,n)))})),i}},11219:function(e,t,n){var r=n(63298),o=n(50487),i=n(84544);e.exports=function(e,t){e=new o(e,t);var n=new r("0.0.0");if(e.test(n))return n;if(n=new r("0.0.0-0"),e.test(n))return n;n=null;for(var a=function(){var t=e.set[l],o=null;t.forEach((function(e){var t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":o&&!i(t,o)||(o=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: ".concat(e.operator))}})),!o||n&&!i(n,o)||(n=o)},l=0;l":h=s,p=u,v=c,m=">",g=">=";break;case"<":h=c,p=f,v=s,m="<",g="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(l(e,t,d))return!1;for(var y,b=function(){var n=t.set[x],r=null,a=null;return n.forEach((function(e){e.semver===i&&(e=new o(">=0.0.0")),r=r||e,a=a||e,h(e.semver,r.semver,d)?r=e:v(e.semver,a.semver,d)&&(a=e)})),r.operator===m||r.operator===g?{v:!1}:a.operator&&a.operator!==m||!p(e,a.semver)?a.operator===g&&v(e,a.semver)?{v:!1}:void 0:{v:!1}},x=0;x=".concat(y)):p.push("*")}var x=p.join(" || "),E="string"===typeof t.raw?t.raw:String(t);return x.length=0.0.0-0")],u=[new i(">=0.0.0")],f=function(e,t,n){if(e===t)return!0;if(1===e.length&&e[0].semver===a){if(1===t.length&&t[0].semver===a)return!0;e=n.includePrerelease?c:u}if(1===t.length&&t[0].semver===a){if(n.includePrerelease)return!0;t=u}var o,i,f,p,v=new Set,m=r(e);try{for(m.s();!(f=m.n()).done;){var g=f.value;">"===g.operator||">="===g.operator?o=d(o,g,n):"<"===g.operator||"<="===g.operator?i=h(i,g,n):v.add(g.semver)}}catch(I){m.e(I)}finally{m.f()}if(v.size>1)return null;if(o&&i){if((p=s(o.semver,i.semver,n))>0)return null;if(0===p&&(">="!==o.operator||"<="!==i.operator))return null}var y,b,x,E,w,C=r(v);try{for(C.s();!(y=C.n()).done;){var S=y.value;if(o&&!l(S,String(o),n))return null;if(i&&!l(S,String(i),n))return null;var M,_=r(t);try{for(_.s();!(M=_.n()).done;){var N=M.value;if(!l(S,String(N),n))return!1}}catch(I){_.e(I)}finally{_.f()}return!0}}catch(I){C.e(I)}finally{C.f()}var O=!(!i||n.includePrerelease||!i.semver.prerelease.length)&&i.semver,k=!(!o||n.includePrerelease||!o.semver.prerelease.length)&&o.semver;O&&1===O.prerelease.length&&"<"===i.operator&&0===O.prerelease[0]&&(O=!1);var T,P=r(t);try{for(P.s();!(T=P.n()).done;){var A=T.value;if(w=w||">"===A.operator||">="===A.operator,E=E||"<"===A.operator||"<="===A.operator,o)if(k&&A.semver.prerelease&&A.semver.prerelease.length&&A.semver.major===k.major&&A.semver.minor===k.minor&&A.semver.patch===k.patch&&(k=!1),">"===A.operator||">="===A.operator){if((b=d(o,A,n))===A&&b!==o)return!1}else if(">="===o.operator&&!l(o.semver,String(A),n))return!1;if(i)if(O&&A.semver.prerelease&&A.semver.prerelease.length&&A.semver.major===O.major&&A.semver.minor===O.minor&&A.semver.patch===O.patch&&(O=!1),"<"===A.operator||"<="===A.operator){if((x=h(i,A,n))===A&&x!==i)return!1}else if("<="===i.operator&&!l(i.semver,String(A),n))return!1;if(!A.operator&&(i||o)&&0!==p)return!1}}catch(I){P.e(I)}finally{P.f()}return!(o&&E&&!i&&0!==p)&&(!(i&&w&&!o&&0!==p)&&(!k&&!O))},d=function(e,t,n){if(!e)return t;var r=s(e.semver,t.semver,n);return r>0?e:r<0||">"===t.operator&&">="===e.operator?t:e},h=function(e,t,n){if(!e)return t;var r=s(e.semver,t.semver,n);return r<0?e:r>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e===t)return!0;e=new o(e,n),t=new o(t,n);var i,a=!1,l=r(e.set);try{e:for(l.s();!(i=l.n()).done;){var s,c=i.value,u=r(t.set);try{for(u.s();!(s=u.n()).done;){var d=s.value,h=f(c,d,n);if(a=a||null!==h,h)continue e}}catch(p){u.e(p)}finally{u.f()}if(a)return!1}}catch(p){l.e(p)}finally{l.f()}return!0}},27545:function(e,t,n){var r=n(50487);e.exports=function(e,t){return new r(e,t).set.map((function(e){return e.map((function(e){return e.value})).join(" ").trim().split(" ")}))}},81383:function(e,t,n){var r=n(50487);e.exports=function(e,t){try{return new r(e,t).range||"*"}catch(n){return null}}},54175:function(e,t,n){"use strict";var r=n(17061).default;e.exports=function(e){e.prototype[Symbol.iterator]=r().mark((function e(){var t;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=this.head;case 1:if(!t){e.next=7;break}return e.next=4,t.value;case 4:t=t.next,e.next=1;break;case 7:case"end":return e.stop()}}),e,this)}))}},20400:function(e,t,n){"use strict";function r(e){var t=this;if(t instanceof r||(t=new r),t.tail=null,t.head=null,t.length=0,e&&"function"===typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var n=0,o=arguments.length;n1)n=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");r=this.head.next,n=this.head.value}for(var o=0;null!==r;o++)n=e(n,r.value,o),r=r.next;return n},r.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");r=this.tail.prev,n=this.tail.value}for(var o=this.length-1;null!==r;o--)n=e(n,r.value,o),r=r.prev;return n},r.prototype.toArray=function(){for(var e=new Array(this.length),t=0,n=this.head;null!==n;t++)e[t]=n.value,n=n.next;return e},r.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,n=this.tail;null!==n;t++)e[t]=n.value,n=n.prev;return e},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r;if(tthis.length&&(t=this.length);for(var o=0,i=this.head;null!==i&&othis.length&&(t=this.length);for(var o=this.length,i=this.tail;null!==i&&o>t;o--)i=i.prev;for(;null!==i&&o>e;o--,i=i.prev)n.push(i.value);return n},r.prototype.splice=function(e,t){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var n=0,r=this.head;null!==r&&ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,l=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){s=!0,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(s)throw a}}}},e.exports.__esModule=!0,e.exports.default=e.exports},79498:function(e){e.exports=function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)},e.exports.__esModule=!0,e.exports.default=e.exports},68872:function(e){e.exports=function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}},e.exports.__esModule=!0,e.exports.default=e.exports},12218:function(e){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},42281:function(e){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},27424:function(e,t,n){var r=n(85372),o=n(68872),i=n(86116),a=n(12218);e.exports=function(e,t){return r(e)||o(e,t)||i(e,t)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},861:function(e,t,n){var r=n(63405),o=n(79498),i=n(86116),a=n(42281);e.exports=function(e){return r(e)||o(e)||i(e)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},86116:function(e,t,n){var r=n(73897);e.exports=function(e,t){if(e){if("string"===typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports}}]); +//# sourceMappingURL=167.26dd9587.chunk.js.map \ No newline at end of file diff --git a/build/static/js/167.26dd9587.chunk.js.LICENSE.txt b/build/static/js/167.26dd9587.chunk.js.LICENSE.txt new file mode 100644 index 0000000..fc3919d --- /dev/null +++ b/build/static/js/167.26dd9587.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*! + * Chart.js v2.9.4 + * https://www.chartjs.org + * (c) 2020 Chart.js Contributors + * Released under the MIT License + */ diff --git a/build/static/js/167.26dd9587.chunk.js.map b/build/static/js/167.26dd9587.chunk.js.map new file mode 100644 index 0000000..a670078 --- /dev/null +++ b/build/static/js/167.26dd9587.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/167.26dd9587.chunk.js","mappings":"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","sources":["../node_modules/@ant-design/icons-svg/es/asn/DotChartOutlined.js","../node_modules/@ant-design/icons/es/icons/DotChartOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","../node_modules/@ant-design/icons/es/icons/DownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/HistoryOutlined.js","../node_modules/@ant-design/icons/es/icons/HistoryOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","../node_modules/@ant-design/icons/es/icons/LeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","../node_modules/@ant-design/icons/es/icons/RightOutlined.js","../node_modules/@aws-amplify/core/lib-esm/Util/Constants.js","../node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js","../node_modules/@aws-amplify/core/lib-esm/Amplify.js","../node_modules/antd/es/_util/motion.js","../node_modules/antd/es/_util/placements.js","../node_modules/antd/es/_util/styleChecker.js","../node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","../node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","../node_modules/rc-menu/node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-menu/node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-menu/node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-menu/node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-menu/node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/rc-menu/node_modules/rc-util/es/warning.js","../node_modules/rc-menu/node_modules/rc-util/es/isEqual.js","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-menu/node_modules/rc-util/es/KeyCode.js","../node_modules/rc-menu/node_modules/rc-util/es/raf.js","../node_modules/rc-menu/node_modules/rc-util/es/Dom/isVisible.js","../node_modules/rc-menu/node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-menu/node_modules/rc-util/es/omit.js","../node_modules/rc-menu/node_modules/rc-util/es/ref.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/index.js","../node_modules/antd/es/menu/MenuDivider.js","../node_modules/antd/es/menu/MenuContext.js","../node_modules/antd/es/menu/MenuItem.js","../node_modules/antd/es/menu/SubMenu.js","../node_modules/antd/es/menu/hooks/useItems.js","../node_modules/antd/es/menu/OverrideContext.js","../node_modules/antd/es/menu/index.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-dropdown/node_modules/rc-util/es/KeyCode.js","../node_modules/rc-dropdown/node_modules/rc-util/es/raf.js","../node_modules/rc-dropdown/node_modules/rc-util/es/Dom/isVisible.js","../node_modules/rc-dropdown/node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../node_modules/antd/es/space/Item.js","../node_modules/antd/es/space/index.js","../node_modules/antd/es/_util/hooks/useFlexGapSupport.js","../node_modules/antd/es/dropdown/dropdown-button.js","../node_modules/antd/es/dropdown/dropdown.js","../node_modules/antd/es/breadcrumb/BreadcrumbItem.js","../node_modules/antd/es/breadcrumb/BreadcrumbSeparator.js","../node_modules/antd/es/breadcrumb/Breadcrumb.js","../node_modules/antd/es/breadcrumb/index.js","../node_modules/@ant-design/icons-svg/es/asn/BarsOutlined.js","../node_modules/@ant-design/icons/es/icons/BarsOutlined.js","../node_modules/antd/es/_util/isNumeric.js","../node_modules/antd/es/layout/Sider.js","../node_modules/antd/es/layout/index.js","../node_modules/antd/es/layout/layout.js","../node_modules/antd/node_modules/rc-util/es/React/render.js","../node_modules/antd/es/_util/ActionButton.js","../node_modules/@rc-component/portal/node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/@rc-component/portal/node_modules/rc-util/es/warning.js","../node_modules/@rc-component/portal/node_modules/rc-util/es/ref.js","../node_modules/@rc-component/portal/node_modules/rc-util/es/hooks/useMemo.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@rc-component/portal/node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/@rc-component/portal/node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/@rc-component/portal/node_modules/rc-util/es/getScrollBarSize.js","../node_modules/@rc-component/portal/node_modules/rc-util/es/Dom/contains.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/portal/es/index.js","../node_modules/rc-dialog/node_modules/rc-util/es/KeyCode.js","../node_modules/rc-dialog/node_modules/rc-util/es/hooks/useId.js","../node_modules/rc-dialog/node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-dialog/node_modules/rc-util/es/pickAttrs.js","../node_modules/rc-dialog/es/Dialog/Mask.js","../node_modules/rc-dialog/es/util.js","../node_modules/rc-dialog/es/Dialog/Content/MemoChildren.js","../node_modules/rc-dialog/es/Dialog/Content/Panel.js","../node_modules/rc-dialog/es/Dialog/Content/index.js","../node_modules/rc-dialog/es/Dialog/index.js","../node_modules/rc-dialog/es/DialogWrap.js","../node_modules/antd/es/modal/Modal.js","../node_modules/rc-dialog/es/index.js","../node_modules/antd/es/modal/ConfirmDialog.js","../node_modules/antd/es/modal/destroyFns.js","../node_modules/antd/es/modal/confirm.js","../node_modules/antd/es/modal/useModal/HookModal.js","../node_modules/antd/es/modal/useModal/index.js","../node_modules/antd/es/_util/hooks/usePatchElement.js","../node_modules/antd/es/modal/index.js","../node_modules/antd/es/_util/getRenderPropValue.js","../node_modules/antd/es/popover/index.js","../node_modules/rc-select/node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-select/node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-select/node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-select/node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-select/node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/rc-select/node_modules/rc-util/es/warning.js","../node_modules/rc-select/node_modules/rc-util/es/KeyCode.js","../node_modules/rc-select/node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-select/node_modules/rc-util/es/ref.js","../node_modules/rc-select/es/hooks/useBaseProps.js","../node_modules/rc-select/es/hooks/useLock.js","../node_modules/rc-select/node_modules/rc-util/es/pickAttrs.js","../node_modules/rc-select/es/TransBtn.js","../node_modules/rc-select/es/Selector/Input.js","../node_modules/rc-select/es/utils/commonUtil.js","../node_modules/rc-select/es/Selector/MultipleSelector.js","../node_modules/rc-select/es/hooks/useLayoutEffect.js","../node_modules/rc-select/es/Selector/SingleSelector.js","../node_modules/rc-select/es/Selector/index.js","../node_modules/rc-select/es/utils/keyUtil.js","../node_modules/rc-select/es/SelectTrigger.js","../node_modules/rc-select/es/utils/valueUtil.js","../node_modules/rc-select/es/BaseSelect.js","../node_modules/rc-select/node_modules/rc-util/es/isMobile.js","../node_modules/rc-select/es/hooks/useDelayReset.js","../node_modules/rc-select/es/hooks/useSelectTriggerControl.js","../node_modules/rc-select/es/hooks/useFilterOptions.js","../node_modules/rc-select/es/hooks/useId.js","../node_modules/rc-select/node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-select/es/utils/legacyUtil.js","../node_modules/rc-select/es/hooks/useRefFunc.js","../node_modules/rc-select/es/OptGroup.js","../node_modules/rc-select/es/Option.js","../node_modules/rc-virtual-list/es/Filler.js","../node_modules/rc-virtual-list/node_modules/rc-util/es/raf.js","../node_modules/rc-virtual-list/es/ScrollBar.js","../node_modules/rc-virtual-list/es/Item.js","../node_modules/rc-virtual-list/node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-virtual-list/es/utils/CacheMap.js","../node_modules/rc-virtual-list/es/hooks/useDiffItem.js","../node_modules/rc-virtual-list/es/utils/algorithmUtil.js","../node_modules/rc-virtual-list/es/utils/isFirefox.js","../node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","../node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","../node_modules/rc-virtual-list/node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-virtual-list/node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","../node_modules/rc-virtual-list/es/utils/scrollbarUtil.js","../node_modules/rc-virtual-list/node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-virtual-list/node_modules/rc-util/es/utils/set.js","../node_modules/rc-virtual-list/node_modules/rc-util/es/warning.js","../node_modules/rc-virtual-list/es/List.js","../node_modules/rc-virtual-list/es/hooks/useHeights.js","../node_modules/rc-virtual-list/es/hooks/useScrollTo.js","../node_modules/rc-virtual-list/es/hooks/useGetSize.js","../node_modules/rc-virtual-list/es/hooks/useChildren.js","../node_modules/rc-virtual-list/es/index.js","../node_modules/rc-select/es/SelectContext.js","../node_modules/rc-select/es/OptionList.js","../node_modules/rc-select/es/utils/platformUtil.js","../node_modules/rc-select/node_modules/rc-util/es/omit.js","../node_modules/rc-select/es/utils/warningPropsUtil.js","../node_modules/rc-select/es/Select.js","../node_modules/rc-select/es/hooks/useOptions.js","../node_modules/rc-select/es/hooks/useCache.js","../node_modules/rc-select/es/index.js","../node_modules/antd/es/empty/empty.js","../node_modules/antd/es/empty/simple.js","../node_modules/antd/es/empty/index.js","../node_modules/antd/es/config-provider/defaultRenderEmpty.js","../node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckOutlined.js","../node_modules/antd/es/select/index.js","../node_modules/antd/es/select/utils/iconUtil.js","../node_modules/rc-switch/node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-switch/node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-switch/node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-switch/node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-switch/node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/rc-switch/node_modules/rc-util/es/KeyCode.js","../node_modules/rc-switch/es/index.js","../node_modules/antd/es/switch/index.js","../node_modules/rc-tooltip/es/Popup.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/tooltip/index.js","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/chart.js/dist/Chart.js","../node_modules/lodash/_arrayAggregator.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_baseAggregator.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_createAggregator.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/keyBy.js","../node_modules/lodash/property.js","../node_modules/lru-cache/index.js","../node_modules/rc-overflow/node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-overflow/node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-overflow/node_modules/rc-util/es/raf.js","../node_modules/rc-overflow/es/hooks/useEffectState.js","../node_modules/rc-overflow/es/hooks/channelUpdate.js","../node_modules/rc-overflow/node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-overflow/es/context.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-trigger/node_modules/rc-util/es/raf.js","../node_modules/rc-trigger/node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-trigger/node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-trigger/node_modules/rc-util/es/ref.js","../node_modules/rc-trigger/node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-trigger/node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-trigger/node_modules/rc-util/es/Portal.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../node_modules/src/propertyUtils.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup/Mask.js","../node_modules/src/utils.js","../node_modules/src/getOffsetParent.js","../node_modules/src/isAncestorFixed.js","../node_modules/src/getVisibleRectForElement.js","../node_modules/src/getRegion.js","../node_modules/src/getAlignOffset.js","../node_modules/src/getElFuturePos.js","../node_modules/src/align/align.js","../node_modules/src/adjustForViewport.js","../node_modules/src/align/alignElement.js","../node_modules/rc-align/node_modules/rc-util/es/warning.js","../node_modules/rc-align/node_modules/rc-util/es/isEqual.js","../node_modules/rc-align/node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-align/node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-align/node_modules/rc-util/es/ref.js","../node_modules/rc-align/es/hooks/useBuffer.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/node_modules/rc-util/es/Dom/isVisible.js","../node_modules/src/align/alignPoint.js","../node_modules/rc-align/node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-align/node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-align/es/index.js","../node_modules/rc-trigger/node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../node_modules/rc-trigger/node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-trigger/es/Popup/PopupInner.js","../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../node_modules/rc-trigger/es/Popup/index.js","../node_modules/rc-trigger/node_modules/rc-util/es/isMobile.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/react-chartjs-2/es/index.js","../node_modules/semver/classes/comparator.js","../node_modules/semver/classes/range.js","../node_modules/semver/classes/semver.js","../node_modules/semver/functions/clean.js","../node_modules/semver/functions/cmp.js","../node_modules/semver/functions/coerce.js","../node_modules/semver/functions/compare-build.js","../node_modules/semver/functions/compare-loose.js","../node_modules/semver/functions/compare.js","../node_modules/semver/functions/diff.js","../node_modules/semver/functions/eq.js","../node_modules/semver/functions/gt.js","../node_modules/semver/functions/gte.js","../node_modules/semver/functions/inc.js","../node_modules/semver/functions/lt.js","../node_modules/semver/functions/lte.js","../node_modules/semver/functions/major.js","../node_modules/semver/functions/minor.js","../node_modules/semver/functions/neq.js","../node_modules/semver/functions/parse.js","../node_modules/semver/functions/patch.js","../node_modules/semver/functions/prerelease.js","../node_modules/semver/functions/rcompare.js","../node_modules/semver/functions/rsort.js","../node_modules/semver/functions/satisfies.js","../node_modules/semver/functions/sort.js","../node_modules/semver/functions/valid.js","../node_modules/semver/index.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/debug.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/internal/re.js","../node_modules/semver/ranges/gtr.js","../node_modules/semver/ranges/intersects.js","../node_modules/semver/ranges/ltr.js","../node_modules/semver/ranges/max-satisfying.js","../node_modules/semver/ranges/min-satisfying.js","../node_modules/semver/ranges/min-version.js","../node_modules/semver/ranges/outside.js","../node_modules/semver/ranges/simplify.js","../node_modules/semver/ranges/subset.js","../node_modules/semver/ranges/to-comparators.js","../node_modules/semver/ranges/valid.js","../node_modules/yallist/iterator.js","../node_modules/yallist/yallist.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"],"sourcesContent":["// This icon file is generated automatically.\nvar DotChartOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM288 604a64 64 0 10128 0 64 64 0 10-128 0zm118-224a48 48 0 1096 0 48 48 0 10-96 0zm158 228a96 96 0 10192 0 96 96 0 10-192 0zm148-314a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"dot-chart\", \"theme\": \"outlined\" };\nexport default DotChartOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DotChartOutlinedSvg from \"@ant-design/icons-svg/es/asn/DotChartOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DotChartOutlined = function DotChartOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DotChartOutlinedSvg\n }));\n};\nDotChartOutlined.displayName = 'DotChartOutlined';\nexport default /*#__PURE__*/React.forwardRef(DotChartOutlined);","// This icon file is generated automatically.\nvar DownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\" } }] }, \"name\": \"down\", \"theme\": \"outlined\" };\nexport default DownOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DownOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DownOutlined = function DownOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DownOutlinedSvg\n }));\n};\nDownOutlined.displayName = 'DownOutlined';\nexport default /*#__PURE__*/React.forwardRef(DownOutlined);","// This icon file is generated automatically.\nvar HistoryOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 003 14.1zm167.7 301.1l-56.7-19.5a8 8 0 00-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 01-112.5 75.9 352.18 352.18 0 01-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 01-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 01171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 01112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 01775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z\" } }] }, \"name\": \"history\", \"theme\": \"outlined\" };\nexport default HistoryOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport HistoryOutlinedSvg from \"@ant-design/icons-svg/es/asn/HistoryOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar HistoryOutlined = function HistoryOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: HistoryOutlinedSvg\n }));\n};\nHistoryOutlined.displayName = 'HistoryOutlined';\nexport default /*#__PURE__*/React.forwardRef(HistoryOutlined);","// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar LeftOutlined = function LeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LeftOutlinedSvg\n }));\n};\nLeftOutlined.displayName = 'LeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(LeftOutlined);","// This icon file is generated automatically.\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexport default RightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport RightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar RightOutlined = function RightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: RightOutlinedSvg\n }));\n};\nRightOutlined.displayName = 'RightOutlined';\nexport default /*#__PURE__*/React.forwardRef(RightOutlined);","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// Logging constants\nvar AWS_CLOUDWATCH_BASE_BUFFER_SIZE = 26;\nvar AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE = 1048576;\nvar AWS_CLOUDWATCH_MAX_EVENT_SIZE = 256000;\nvar AWS_CLOUDWATCH_CATEGORY = 'Logging';\nvar AWS_CLOUDWATCH_PROVIDER_NAME = 'AWSCloudWatch';\nvar NO_CREDS_ERROR_STRING = 'No credentials';\nvar RETRY_ERROR_CODES = [\n 'ResourceNotFoundException',\n 'InvalidSequenceTokenException',\n];\nexport { AWS_CLOUDWATCH_BASE_BUFFER_SIZE, AWS_CLOUDWATCH_CATEGORY, AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE, AWS_CLOUDWATCH_MAX_EVENT_SIZE, AWS_CLOUDWATCH_PROVIDER_NAME, NO_CREDS_ERROR_STRING, RETRY_ERROR_CODES, };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { AWS_CLOUDWATCH_CATEGORY } from '../Util/Constants';\nvar LOG_LEVELS = {\n VERBOSE: 1,\n DEBUG: 2,\n INFO: 3,\n WARN: 4,\n ERROR: 5,\n};\nexport var LOG_TYPE;\n(function (LOG_TYPE) {\n LOG_TYPE[\"DEBUG\"] = \"DEBUG\";\n LOG_TYPE[\"ERROR\"] = \"ERROR\";\n LOG_TYPE[\"INFO\"] = \"INFO\";\n LOG_TYPE[\"WARN\"] = \"WARN\";\n LOG_TYPE[\"VERBOSE\"] = \"VERBOSE\";\n})(LOG_TYPE || (LOG_TYPE = {}));\n/**\n * Write logs\n * @class Logger\n */\nexport var ConsoleLogger = /** @class */ (function () {\n /**\n * @constructor\n * @param {string} name - Name of the logger\n */\n function ConsoleLogger(name, level) {\n if (level === void 0) { level = LOG_TYPE.WARN; }\n this.name = name;\n this.level = level;\n this._pluggables = [];\n }\n ConsoleLogger.prototype._padding = function (n) {\n return n < 10 ? '0' + n : '' + n;\n };\n ConsoleLogger.prototype._ts = function () {\n var dt = new Date();\n return ([this._padding(dt.getMinutes()), this._padding(dt.getSeconds())].join(':') +\n '.' +\n dt.getMilliseconds());\n };\n ConsoleLogger.prototype.configure = function (config) {\n if (!config)\n return this._config;\n this._config = config;\n return this._config;\n };\n /**\n * Write log\n * @method\n * @memeberof Logger\n * @param {LOG_TYPE|string} type - log type, default INFO\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype._log = function (type) {\n var e_1, _a;\n var msg = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n msg[_i - 1] = arguments[_i];\n }\n var logger_level_name = this.level;\n if (ConsoleLogger.LOG_LEVEL) {\n logger_level_name = ConsoleLogger.LOG_LEVEL;\n }\n if (typeof window !== 'undefined' && window.LOG_LEVEL) {\n logger_level_name = window.LOG_LEVEL;\n }\n var logger_level = LOG_LEVELS[logger_level_name];\n var type_level = LOG_LEVELS[type];\n if (!(type_level >= logger_level)) {\n // Do nothing if type is not greater than or equal to logger level (handle undefined)\n return;\n }\n var log = console.log.bind(console);\n if (type === LOG_TYPE.ERROR && console.error) {\n log = console.error.bind(console);\n }\n if (type === LOG_TYPE.WARN && console.warn) {\n log = console.warn.bind(console);\n }\n var prefix = \"[\".concat(type, \"] \").concat(this._ts(), \" \").concat(this.name);\n var message = '';\n if (msg.length === 1 && typeof msg[0] === 'string') {\n message = \"\".concat(prefix, \" - \").concat(msg[0]);\n log(message);\n }\n else if (msg.length === 1) {\n message = \"\".concat(prefix, \" \").concat(msg[0]);\n log(prefix, msg[0]);\n }\n else if (typeof msg[0] === 'string') {\n var obj = msg.slice(1);\n if (obj.length === 1) {\n obj = obj[0];\n }\n message = \"\".concat(prefix, \" - \").concat(msg[0], \" \").concat(obj);\n log(\"\".concat(prefix, \" - \").concat(msg[0]), obj);\n }\n else {\n message = \"\".concat(prefix, \" \").concat(msg);\n log(prefix, msg);\n }\n try {\n for (var _b = __values(this._pluggables), _c = _b.next(); !_c.done; _c = _b.next()) {\n var plugin = _c.value;\n var logEvent = { message: message, timestamp: Date.now() };\n plugin.pushLogs([logEvent]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Write General log. Default to INFO\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.log = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spreadArray([LOG_TYPE.INFO], __read(msg), false));\n };\n /**\n * Write INFO log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.info = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spreadArray([LOG_TYPE.INFO], __read(msg), false));\n };\n /**\n * Write WARN log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.warn = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spreadArray([LOG_TYPE.WARN], __read(msg), false));\n };\n /**\n * Write ERROR log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.error = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spreadArray([LOG_TYPE.ERROR], __read(msg), false));\n };\n /**\n * Write DEBUG log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.debug = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spreadArray([LOG_TYPE.DEBUG], __read(msg), false));\n };\n /**\n * Write VERBOSE log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.verbose = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spreadArray([LOG_TYPE.VERBOSE], __read(msg), false));\n };\n ConsoleLogger.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategoryName() === AWS_CLOUDWATCH_CATEGORY) {\n this._pluggables.push(pluggable);\n pluggable.configure(this._config);\n }\n };\n ConsoleLogger.prototype.listPluggables = function () {\n return this._pluggables;\n };\n ConsoleLogger.LOG_LEVEL = null;\n return ConsoleLogger;\n}());\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger as LoggerClass } from './Logger';\nvar logger = new LoggerClass('Amplify');\nvar AmplifyClass = /** @class */ (function () {\n function AmplifyClass() {\n // Everything that is `register`ed is tracked here\n this._components = [];\n this._config = {};\n // All modules (with `getModuleName()`) are stored here for dependency injection\n this._modules = {};\n // for backward compatibility to avoid breaking change\n // if someone is using like Amplify.Auth\n this.Auth = null;\n this.Analytics = null;\n this.API = null;\n this.Credentials = null;\n this.Storage = null;\n this.I18n = null;\n this.Cache = null;\n this.PubSub = null;\n this.Interactions = null;\n this.Pushnotification = null;\n this.UI = null;\n this.XR = null;\n this.Predictions = null;\n this.DataStore = null;\n this.Geo = null;\n this.Notifications = null;\n this.Logger = LoggerClass;\n this.ServiceWorker = null;\n }\n AmplifyClass.prototype.register = function (comp) {\n logger.debug('component registered in amplify', comp);\n this._components.push(comp);\n if (typeof comp.getModuleName === 'function') {\n this._modules[comp.getModuleName()] = comp;\n this[comp.getModuleName()] = comp;\n }\n else {\n logger.debug('no getModuleName method for component', comp);\n }\n // Finally configure this new component(category) loaded\n // With the new modularization changes in Amplify V3, all the Amplify\n // component are not loaded/registered right away but when they are\n // imported (and hence instantiated) in the client's app. This ensures\n // that all new components imported get correctly configured with the\n // configuration that Amplify.configure() was called with.\n comp.configure(this._config);\n };\n AmplifyClass.prototype.configure = function (config) {\n var _this = this;\n if (!config)\n return this._config;\n this._config = Object.assign(this._config, config);\n logger.debug('amplify config', this._config);\n // Dependency Injection via property-setting.\n // This avoids introducing a public method/interface/setter that's difficult to remove later.\n // Plus, it reduces `if` statements within the `constructor` and `configure` of each module\n Object.entries(this._modules).forEach(function (_a) {\n var _b = __read(_a, 2), Name = _b[0], comp = _b[1];\n // e.g. Auth.*\n Object.keys(comp).forEach(function (property) {\n // e.g. Auth[\"Credentials\"] = this._modules[\"Credentials\"] when set\n if (_this._modules[property]) {\n comp[property] = _this._modules[property];\n }\n });\n });\n this._components.map(function (comp) {\n comp.configure(_this._config);\n });\n return this._config;\n };\n AmplifyClass.prototype.addPluggable = function (pluggable) {\n if (pluggable &&\n pluggable['getCategory'] &&\n typeof pluggable['getCategory'] === 'function') {\n this._components.map(function (comp) {\n if (comp['addPluggable'] &&\n typeof comp['addPluggable'] === 'function') {\n comp.addPluggable(pluggable);\n }\n });\n }\n };\n return AmplifyClass;\n}());\nexport { AmplifyClass };\nexport var Amplify = new AmplifyClass();\n","import { tuple } from './type';\n// ================== Collapse Motion ==================\nvar getCollapsedHeight = function getCollapsedHeight() {\n return {\n height: 0,\n opacity: 0\n };\n};\nvar getRealHeight = function getRealHeight(node) {\n var scrollHeight = node.scrollHeight;\n return {\n height: scrollHeight,\n opacity: 1\n };\n};\nvar getCurrentHeight = function getCurrentHeight(node) {\n return {\n height: node ? node.offsetHeight : 0\n };\n};\nvar skipOpacityTransition = function skipOpacityTransition(_, event) {\n return (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\n};\nvar collapseMotion = {\n motionName: 'ant-motion-collapse',\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n onAppearEnd: skipOpacityTransition,\n onEnterEnd: skipOpacityTransition,\n onLeaveEnd: skipOpacityTransition,\n motionDeadline: 500\n};\nvar SelectPlacements = tuple('bottomLeft', 'bottomRight', 'topLeft', 'topRight');\nvar getTransitionDirection = function getTransitionDirection(placement) {\n if (placement !== undefined && (placement === 'topLeft' || placement === 'topRight')) {\n return \"slide-down\";\n }\n return \"slide-up\";\n};\nvar getTransitionName = function getTransitionName(rootPrefixCls, motion, transitionName) {\n if (transitionName !== undefined) {\n return transitionName;\n }\n return \"\".concat(rootPrefixCls, \"-\").concat(motion);\n};\nexport { getTransitionName, getTransitionDirection };\nexport default collapseMotion;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { placements } from \"rc-tooltip/es/placements\";\nvar autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\nvar autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\nvar targetOffset = [0, 0];\nexport function getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n return _extends(_extends({}, autoAdjustOverflowDisabled), autoAdjustOverflow);\n}\nexport default function getPlacements(config) {\n var _config$arrowWidth = config.arrowWidth,\n arrowWidth = _config$arrowWidth === void 0 ? 4 : _config$arrowWidth,\n _config$horizontalArr = config.horizontalArrowShift,\n horizontalArrowShift = _config$horizontalArr === void 0 ? 16 : _config$horizontalArr,\n _config$verticalArrow = config.verticalArrowShift,\n verticalArrowShift = _config$verticalArrow === void 0 ? 8 : _config$verticalArrow,\n autoAdjustOverflow = config.autoAdjustOverflow,\n arrowPointAtCenter = config.arrowPointAtCenter;\n var placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4]\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4]\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)]\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4]\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)]\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4]\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth]\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4]\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth]\n }\n };\n Object.keys(placementMap).forEach(function (key) {\n placementMap[key] = arrowPointAtCenter ? _extends(_extends({}, placementMap[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset: targetOffset\n }) : _extends(_extends({}, placements[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nexport var canUseDocElement = function canUseDocElement() {\n return canUseDom() && window.document.documentElement;\n};\nexport { isStyleSupport };\nvar flexGapSupported;\nexport var detectFlexGapSupported = function detectFlexGapSupported() {\n if (!canUseDocElement()) {\n return false;\n }\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n }\n // create flex container with row-gap set\n var flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px';\n // create two, elements inside it\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div'));\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n document.body.removeChild(flex);\n return flexGapSupported;\n};","// This icon file is generated automatically.\nvar EllipsisOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"ellipsis\", \"theme\": \"outlined\" };\nexport default EllipsisOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EllipsisOutlinedSvg from \"@ant-design/icons-svg/es/asn/EllipsisOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EllipsisOutlined = function EllipsisOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EllipsisOutlinedSvg\n }));\n};\nEllipsisOutlined.displayName = 'EllipsisOutlined';\nexport default /*#__PURE__*/React.forwardRef(EllipsisOutlined);","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;\n/* eslint-enable */","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","import * as React from 'react';\nexport var IdContext = /*#__PURE__*/React.createContext(null);\nexport function getMenuId(uuid, eventKey) {\n if (uuid === undefined) {\n return null;\n }\n return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n\n/**\n * Get `data-menu-id`\n */\nexport function useMenuId(eventKey) {\n var id = React.useContext(IdContext);\n return getMenuId(id, eventKey);\n}","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"children\", \"locked\"];\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\nfunction mergeProps(origin, target) {\n var clone = _objectSpread({}, origin);\n Object.keys(target).forEach(function (key) {\n var value = target[key];\n if (value !== undefined) {\n clone[key] = value;\n }\n });\n return clone;\n}\nexport default function InheritableContextProvider(_ref) {\n var children = _ref.children,\n locked = _ref.locked,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var context = React.useContext(MenuContext);\n var inheritableContext = useMemo(function () {\n return mergeProps(context, restProps);\n }, [context, restProps], function (prev, next) {\n return !locked && (prev[0] !== next[0] || !isEqual(prev[1], next[1], true));\n });\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: inheritableContext\n }, children);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = [];\n\n// ========================= Path Register =========================\n\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n return React.useContext(PathRegisterContext);\n}\n\n// ========================= Path Tracker ==========================\nexport var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);\nexport function useFullPath(eventKey) {\n var parentKeyPath = React.useContext(PathTrackerContext);\n return React.useMemo(function () {\n return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;\n }, [parentKeyPath, eventKey]);\n}\n\n// =========================== Path User ===========================\n\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nvar PrivateContext = /*#__PURE__*/React.createContext({});\nexport default PrivateContext;","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};\nexport default wrapperRaf;","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof Element) {\n if (element.offsetParent) {\n return true;\n }\n if (element.getBBox) {\n var _getBBox = element.getBBox(),\n width = _getBBox.width,\n height = _getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n }\n return false;\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from \"./isVisible\";\nfunction focusable(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (isVisible(node)) {\n var nodeName = node.nodeName.toLowerCase();\n var isFocusableElement =\n // Focusable element\n ['input', 'select', 'textarea', 'button'].includes(nodeName) ||\n // Editable element\n node.isContentEditable ||\n // Anchor with href element\n nodeName === 'a' && !!node.getAttribute('href');\n\n // Get tabIndex\n var tabIndexAttr = node.getAttribute('tabindex');\n var tabIndexNum = Number(tabIndexAttr);\n\n // Parse as number if validate\n var tabIndex = null;\n if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n tabIndex = tabIndexNum;\n } else if (isFocusableElement && tabIndex === null) {\n tabIndex = 0;\n }\n\n // Block focusable if disabled\n if (isFocusableElement && node.disabled) {\n tabIndex = null;\n }\n return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n }\n return false;\n}\nexport function getFocusNodeList(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n return focusable(child, includePositive);\n });\n if (focusable(node, includePositive)) {\n res.unshift(node);\n }\n return res;\n}\nvar lastFocusElement = null;\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function saveLastFocusNode() {\n lastFocusElement = document.activeElement;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function clearLastFocusNode() {\n lastFocusElement = null;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function backLastFocusNode() {\n if (lastFocusElement) {\n try {\n // 元素可能已经被移动了\n lastFocusElement.focus();\n\n /* eslint-disable no-empty */\n } catch (e) {\n // empty\n }\n /* eslint-enable no-empty */\n }\n}\n\nexport function limitTabRange(node, e) {\n if (e.keyCode === 9) {\n var tabNodeList = getFocusNodeList(node);\n var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n if (leavingTab) {\n var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n target.focus();\n e.preventDefault();\n }\n }\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nimport { getMenuId } from \"../context/IdContext\";\n\n// destruct to reduce minify size\nvar LEFT = KeyCode.LEFT,\n RIGHT = KeyCode.RIGHT,\n UP = KeyCode.UP,\n DOWN = KeyCode.DOWN,\n ENTER = KeyCode.ENTER,\n ESC = KeyCode.ESC,\n HOME = KeyCode.HOME,\n END = KeyCode.END;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n var _inline, _horizontal, _vertical, _offsets;\n var prev = 'prev';\n var next = 'next';\n var children = 'children';\n var parent = 'parent';\n\n // Inline enter is special that we use unique operation\n if (mode === 'inline' && which === ENTER) {\n return {\n inlineTrigger: true\n };\n }\n var inline = (_inline = {}, _defineProperty(_inline, UP, prev), _defineProperty(_inline, DOWN, next), _inline);\n var horizontal = (_horizontal = {}, _defineProperty(_horizontal, LEFT, isRtl ? next : prev), _defineProperty(_horizontal, RIGHT, isRtl ? prev : next), _defineProperty(_horizontal, DOWN, children), _defineProperty(_horizontal, ENTER, children), _horizontal);\n var vertical = (_vertical = {}, _defineProperty(_vertical, UP, prev), _defineProperty(_vertical, DOWN, next), _defineProperty(_vertical, ENTER, children), _defineProperty(_vertical, ESC, parent), _defineProperty(_vertical, LEFT, isRtl ? children : parent), _defineProperty(_vertical, RIGHT, isRtl ? parent : children), _vertical);\n var offsets = {\n inline: inline,\n horizontal: horizontal,\n vertical: vertical,\n inlineSub: inline,\n horizontalSub: vertical,\n verticalSub: vertical\n };\n var type = (_offsets = offsets[\"\".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];\n switch (type) {\n case prev:\n return {\n offset: -1,\n sibling: true\n };\n case next:\n return {\n offset: 1,\n sibling: true\n };\n case parent:\n return {\n offset: -1,\n sibling: false\n };\n case children:\n return {\n offset: 1,\n sibling: false\n };\n default:\n return null;\n }\n}\nfunction findContainerUL(element) {\n var current = element;\n while (current) {\n if (current.getAttribute('data-menu-list')) {\n return current;\n }\n current = current.parentElement;\n }\n\n // Normally should not reach this line\n /* istanbul ignore next */\n return null;\n}\n\n/**\n * Find focused element within element set provided\n */\nfunction getFocusElement(activeElement, elements) {\n var current = activeElement || document.activeElement;\n while (current) {\n if (elements.has(current)) {\n return current;\n }\n current = current.parentElement;\n }\n return null;\n}\n\n/**\n * Get focusable elements from the element set under provided container\n */\nfunction getFocusableElements(container, elements) {\n var list = getFocusNodeList(container, true);\n return list.filter(function (ele) {\n return elements.has(ele);\n });\n}\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n // Key on the menu item will not get validate parent container\n if (!parentQueryContainer) {\n return null;\n }\n\n // List current level menu item elements\n var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);\n\n // Find next focus index\n var count = sameLevelFocusableMenuElementList.length;\n var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n return focusMenuElement === ele;\n });\n if (offset < 0) {\n if (focusIndex === -1) {\n focusIndex = count - 1;\n } else {\n focusIndex -= 1;\n }\n } else if (offset > 0) {\n focusIndex += 1;\n }\n focusIndex = (focusIndex + count) % count;\n\n // Focus menu item\n return sameLevelFocusableMenuElementList[focusIndex];\n}\nexport default function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {\n var rafRef = React.useRef();\n var activeRef = React.useRef();\n activeRef.current = activeKey;\n var cleanRaf = function cleanRaf() {\n raf.cancel(rafRef.current);\n };\n React.useEffect(function () {\n return function () {\n cleanRaf();\n };\n }, []);\n return function (e) {\n var which = e.which;\n if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {\n // Convert key to elements\n var elements;\n var key2element;\n var element2key;\n\n // >>> Wrap as function since we use raf for some case\n var refreshElements = function refreshElements() {\n elements = new Set();\n key2element = new Map();\n element2key = new Map();\n var keys = getKeys();\n keys.forEach(function (key) {\n var element = document.querySelector(\"[data-menu-id='\".concat(getMenuId(id, key), \"']\"));\n if (element) {\n elements.add(element);\n element2key.set(element, key);\n key2element.set(key, element);\n }\n });\n return elements;\n };\n refreshElements();\n\n // First we should find current focused MenuItem/SubMenu element\n var activeElement = key2element.get(activeKey);\n var focusMenuElement = getFocusElement(activeElement, elements);\n var focusMenuKey = element2key.get(focusMenuElement);\n var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which);\n\n // Some mode do not have fully arrow operation like inline\n if (!offsetObj && which !== HOME && which !== END) {\n return;\n }\n\n // Arrow prevent default to avoid page scroll\n if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {\n e.preventDefault();\n }\n var tryFocus = function tryFocus(menuElement) {\n if (menuElement) {\n var focusTargetElement = menuElement;\n\n // Focus to link instead of menu item if possible\n var link = menuElement.querySelector('a');\n if (link !== null && link !== void 0 && link.getAttribute('href')) {\n focusTargetElement = link;\n }\n var targetKey = element2key.get(menuElement);\n triggerActiveKey(targetKey);\n\n /**\n * Do not `useEffect` here since `tryFocus` may trigger async\n * which makes React sync update the `activeKey`\n * that force render before `useRef` set the next activeKey\n */\n cleanRaf();\n rafRef.current = raf(function () {\n if (activeRef.current === targetKey) {\n focusTargetElement.focus();\n }\n });\n }\n };\n if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {\n // ========================== Sibling ==========================\n // Find walkable focus menu element container\n var parentQueryContainer;\n if (!focusMenuElement || mode === 'inline') {\n parentQueryContainer = containerRef.current;\n } else {\n parentQueryContainer = findContainerUL(focusMenuElement);\n }\n\n // Get next focus element\n var targetElement;\n var focusableElements = getFocusableElements(parentQueryContainer, elements);\n if (which === HOME) {\n targetElement = focusableElements[0];\n } else if (which === END) {\n targetElement = focusableElements[focusableElements.length - 1];\n } else {\n targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);\n }\n // Focus menu item\n tryFocus(targetElement);\n\n // ======================= InlineTrigger =======================\n } else if (offsetObj.inlineTrigger) {\n // Inline trigger no need switch to sub menu item\n triggerAccessibilityOpen(focusMenuKey);\n // =========================== Level ===========================\n } else if (offsetObj.offset > 0) {\n triggerAccessibilityOpen(focusMenuKey, true);\n cleanRaf();\n rafRef.current = raf(function () {\n // Async should resync elements\n refreshElements();\n var controlId = focusMenuElement.getAttribute('aria-controls');\n var subQueryContainer = document.getElementById(controlId);\n\n // Get sub focusable menu item\n var targetElement = getNextFocusElement(subQueryContainer, elements);\n\n // Focus menu item\n tryFocus(targetElement);\n }, 5);\n } else if (offsetObj.offset < 0) {\n var keyPath = getKeyPath(focusMenuKey, true);\n var parentKey = keyPath[keyPath.length - 2];\n var parentMenuElement = key2element.get(parentKey);\n\n // Focus menu item\n triggerAccessibilityOpen(parentKey, false);\n tryFocus(parentMenuElement);\n }\n }\n\n // Pass origin key down event\n originOnKeyDown === null || originOnKeyDown === void 0 ? void 0 : originOnKeyDown(e);\n };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useCallback } from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { nextSlice } from \"../utils/timeUtil\";\nvar PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';\nvar getPathStr = function getPathStr(keyPath) {\n return keyPath.join(PATH_SPLIT);\n};\nvar getPathKeys = function getPathKeys(keyPathStr) {\n return keyPathStr.split(PATH_SPLIT);\n};\nexport var OVERFLOW_KEY = 'rc-menu-more';\nexport default function useKeyRecords() {\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n internalForceUpdate = _React$useState2[1];\n var key2pathRef = useRef(new Map());\n var path2keyRef = useRef(new Map());\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n overflowKeys = _React$useState4[0],\n setOverflowKeys = _React$useState4[1];\n var updateRef = useRef(0);\n var destroyRef = useRef(false);\n var forceUpdate = function forceUpdate() {\n if (!destroyRef.current) {\n internalForceUpdate({});\n }\n };\n var registerPath = useCallback(function (key, keyPath) {\n // Warning for invalidate or duplicated `key`\n if (process.env.NODE_ENV !== 'production') {\n warning(!key2pathRef.current.has(key), \"Duplicated key '\".concat(key, \"' used in Menu by path [\").concat(keyPath.join(' > '), \"]\"));\n }\n\n // Fill map\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.set(connectedPath, key);\n key2pathRef.current.set(key, connectedPath);\n updateRef.current += 1;\n var id = updateRef.current;\n nextSlice(function () {\n if (id === updateRef.current) {\n forceUpdate();\n }\n });\n }, []);\n var unregisterPath = useCallback(function (key, keyPath) {\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.delete(connectedPath);\n key2pathRef.current.delete(key);\n }, []);\n var refreshOverflowKeys = useCallback(function (keys) {\n setOverflowKeys(keys);\n }, []);\n var getKeyPath = useCallback(function (eventKey, includeOverflow) {\n var fullPath = key2pathRef.current.get(eventKey) || '';\n var keys = getPathKeys(fullPath);\n if (includeOverflow && overflowKeys.includes(keys[0])) {\n keys.unshift(OVERFLOW_KEY);\n }\n return keys;\n }, [overflowKeys]);\n var isSubPathKey = useCallback(function (pathKeys, eventKey) {\n return pathKeys.some(function (pathKey) {\n var pathKeyList = getKeyPath(pathKey, true);\n return pathKeyList.includes(eventKey);\n });\n }, [getKeyPath]);\n var getKeys = function getKeys() {\n var keys = _toConsumableArray(key2pathRef.current.keys());\n if (overflowKeys.length) {\n keys.push(OVERFLOW_KEY);\n }\n return keys;\n };\n\n /**\n * Find current key related child path keys\n */\n var getSubPathKeys = useCallback(function (key) {\n var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n var pathKeys = new Set();\n _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n if (pathKey.startsWith(connectedPath)) {\n pathKeys.add(path2keyRef.current.get(pathKey));\n }\n });\n return pathKeys;\n }, []);\n React.useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return {\n // Register\n registerPath: registerPath,\n unregisterPath: unregisterPath,\n refreshOverflowKeys: refreshOverflowKeys,\n // Util\n isSubPathKey: isSubPathKey,\n getKeyPath: getKeyPath,\n getKeys: getKeys,\n getSubPathKeys: getSubPathKeys\n };\n}","export function nextSlice(callback) {\n /* istanbul ignore next */\n Promise.resolve().then(callback);\n}","import * as React from 'react';\n\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\nexport default function useMemoCallback(func) {\n var funRef = React.useRef(func);\n funRef.current = func;\n var callback = React.useCallback(function () {\n var _funRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));\n }, []);\n return func ? callback : undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar uniquePrefix = Math.random().toFixed(5).toString().slice(2);\nvar internalId = 0;\nexport default function useUUID(id) {\n var _useMergedState = useMergedState(id, {\n value: id\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n uuid = _useMergedState2[0],\n setUUID = _useMergedState2[1];\n React.useEffect(function () {\n internalId += 1;\n var newId = process.env.NODE_ENV === 'test' ? 'test' : \"\".concat(uniquePrefix, \"-\").concat(internalId);\n setUUID(\"rc-menu-uuid-\".concat(newId));\n }, []);\n return uuid;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nexport default function omit(obj, fields) {\n var clone = _objectSpread({}, obj);\n if (Array.isArray(fields)) {\n fields.forEach(function (key) {\n delete clone[key];\n });\n }\n return clone;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable no-param-reassign */\n\nimport { isValidElement } from 'react';\nimport { isFragment, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(function (ref) {\n return ref;\n });\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render)) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render)) {\n return false;\n }\n return true;\n}\nexport function supportNodeRef(node) {\n if (! /*#__PURE__*/isValidElement(node)) {\n return false;\n }\n if (isFragment(node)) {\n return false;\n }\n return supportRef(node);\n}\n/* eslint-enable */","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {\n var _React$useContext = React.useContext(MenuContext),\n activeKey = _React$useContext.activeKey,\n onActive = _React$useContext.onActive,\n onInactive = _React$useContext.onInactive;\n var ret = {\n active: activeKey === eventKey\n };\n\n // Skip when disabled\n if (!disabled) {\n ret.onMouseEnter = function (domEvent) {\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n onActive(eventKey);\n };\n ret.onMouseLeave = function (domEvent) {\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n onInactive(eventKey);\n };\n }\n return ret;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useDirectionStyle(level) {\n var _React$useContext = React.useContext(MenuContext),\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl,\n inlineIndent = _React$useContext.inlineIndent;\n if (mode !== 'inline') {\n return null;\n }\n var len = level;\n return rtl ? {\n paddingRight: len * inlineIndent\n } : {\n paddingLeft: len * inlineIndent\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function Icon(_ref) {\n var icon = _ref.icon,\n props = _ref.props,\n children = _ref.children;\n var iconNode;\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n } else {\n // Compatible for origin definition\n iconNode = icon;\n }\n return iconNode || children || null;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\n\n/**\n * `onClick` event return `info.item` which point to react node directly.\n * We should warning this since it will not work on FC.\n */\nexport function warnItemProp(_ref) {\n var item = _ref.item,\n restInfo = _objectWithoutProperties(_ref, _excluded);\n Object.defineProperty(restInfo, 'item', {\n get: function get() {\n warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');\n return item;\n }\n });\n return restInfo;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"title\", \"attribute\", \"elementRef\"],\n _excluded2 = [\"style\", \"className\", \"eventKey\", \"warnKey\", \"disabled\", \"itemIcon\", \"children\", \"role\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"onKeyDown\", \"onFocus\"],\n _excluded3 = [\"active\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useMenuId } from \"./context/IdContext\";\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useActive from \"./hooks/useActive\";\nimport useDirectionStyle from \"./hooks/useDirectionStyle\";\nimport Icon from \"./Icon\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n// Since Menu event provide the `info.item` which point to the MenuItem node instance.\n// We have to use class component here.\n// This should be removed from doc & api in future.\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(LegacyMenuItem, _React$Component);\n var _super = _createSuper(LegacyMenuItem);\n function LegacyMenuItem() {\n _classCallCheck(this, LegacyMenuItem);\n return _super.apply(this, arguments);\n }\n _createClass(LegacyMenuItem, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n title = _this$props.title,\n attribute = _this$props.attribute,\n elementRef = _this$props.elementRef,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n // Here the props are eventually passed to the DOM element.\n // React does not recognize non-standard attributes.\n // Therefore, remove the props that is not used here.\n // ref: https://github.com/ant-design/ant-design/issues/41395\n var passedProps = omit(restProps, ['eventKey', 'popupClassName', 'popupOffset', 'onTitleClick']);\n warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');\n return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {\n title: typeof title === 'string' ? title : undefined\n }, passedProps, {\n ref: elementRef\n }));\n }\n }]);\n return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\nvar InternalMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var style = props.style,\n className = props.className,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n itemIcon = props.itemIcon,\n children = props.children,\n role = props.role,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded2);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n onItemClick = _React$useContext.onItemClick,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n contextItemIcon = _React$useContext.itemIcon,\n selectedKeys = _React$useContext.selectedKeys,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;\n var itemCls = \"\".concat(prefixCls, \"-item\");\n var legacyMenuItemRef = React.useRef();\n var elementRef = React.useRef();\n var mergedDisabled = contextDisabled || disabled;\n var mergedEleRef = useComposeRef(ref, elementRef);\n var connectedKeys = useFullPath(eventKey);\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'MenuItem should not leave undefined `key`.');\n }\n\n // ============================= Info =============================\n var getEventInfo = function getEventInfo(e) {\n return {\n key: eventKey,\n // Note: For legacy code is reversed which not like other antd component\n keyPath: _toConsumableArray(connectedKeys).reverse(),\n item: legacyMenuItemRef.current,\n domEvent: e\n };\n };\n\n // ============================= Icon =============================\n var mergedItemIcon = itemIcon || contextItemIcon;\n\n // ============================ Active ============================\n var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded3);\n\n // ============================ Select ============================\n var selected = selectedKeys.includes(eventKey);\n\n // ======================== DirectionStyle ========================\n var directionStyle = useDirectionStyle(connectedKeys.length);\n\n // ============================ Events ============================\n var onInternalClick = function onInternalClick(e) {\n if (mergedDisabled) {\n return;\n }\n var info = getEventInfo(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n };\n var onInternalKeyDown = function onInternalKeyDown(e) {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n if (e.which === KeyCode.ENTER) {\n var info = getEventInfo(e);\n\n // Legacy. Key will also trigger click event\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus(e) {\n onActive(eventKey);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n\n // ============================ Render ============================\n var optionRoleProps = {};\n if (props.role === 'option') {\n optionRoleProps['aria-selected'] = selected;\n }\n var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n ref: legacyMenuItemRef,\n elementRef: mergedEleRef,\n role: role === null ? 'none' : role || 'menuitem',\n tabIndex: disabled ? null : -1,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId\n }, restProps, activeProps, optionRoleProps, {\n component: \"li\",\n \"aria-disabled\": disabled,\n style: _objectSpread(_objectSpread({}, directionStyle), style),\n className: classNames(itemCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(itemCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(itemCls, \"-selected\"), selected), _defineProperty(_classNames, \"\".concat(itemCls, \"-disabled\"), mergedDisabled), _classNames), className),\n onClick: onInternalClick,\n onKeyDown: onInternalKeyDown,\n onFocus: onInternalFocus\n }), children, /*#__PURE__*/React.createElement(Icon, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n isSelected: selected\n }),\n icon: mergedItemIcon\n }));\n if (_internalRenderMenuItem) {\n renderNode = _internalRenderMenuItem(renderNode, props, {\n selected: selected\n });\n }\n return renderNode;\n});\nfunction MenuItem(props, ref) {\n var eventKey = props.eventKey;\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n var connectedKeyPath = useFullPath(eventKey);\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n if (measure) {\n return null;\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(InternalMenuItem, _extends({}, props, {\n ref: ref\n }));\n}\nexport default /*#__PURE__*/React.forwardRef(MenuItem);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"../context/MenuContext\";\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n var className = _ref.className,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, rtl && \"\".concat(prefixCls, \"-rtl\"), \"\".concat(prefixCls, \"-sub\"), \"\".concat(prefixCls, \"-\").concat(mode === 'inline' ? 'inline' : 'vertical'), className),\n role: \"menu\"\n }, restProps, {\n \"data-menu-list\": true,\n ref: ref\n }), children);\n};\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar _excluded = [\"label\", \"children\", \"key\", \"type\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { Divider, MenuItem, MenuItemGroup, SubMenu } from '..';\nexport function parseChildren(children, keyPath) {\n return toArray(children).map(function (child, index) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n var _eventKey, _child$props;\n var key = child.key;\n var eventKey = (_eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _eventKey !== void 0 ? _eventKey : key;\n var emptyKey = eventKey === null || eventKey === undefined;\n if (emptyKey) {\n eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n }\n var cloneProps = {\n key: eventKey,\n eventKey: eventKey\n };\n if (process.env.NODE_ENV !== 'production' && emptyKey) {\n cloneProps.warnKey = true;\n }\n return /*#__PURE__*/React.cloneElement(child, cloneProps);\n }\n return child;\n });\n}\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _ref = opt,\n label = _ref.label,\n children = _ref.children,\n key = _ref.key,\n type = _ref.type,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(MenuItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(Divider, _extends({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\nexport function parseItems(children, items, keyPath) {\n var childNodes = children;\n if (items) {\n childNodes = convertItemsToNodes(items);\n }\n return parseChildren(childNodes, keyPath);\n}","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport default placements;","export function getMotion(mode, motion, defaultMotions) {\n if (motion) {\n return motion;\n }\n if (defaultMotions) {\n return defaultMotions[mode] || defaultMotions.other;\n }\n return undefined;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport { MenuContext } from \"../context/MenuContext\";\nimport { placements, placementsRtl } from \"../placements\";\nimport { getMotion } from \"../utils/motionUtil\";\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\nexport default function PopupTrigger(_ref) {\n var prefixCls = _ref.prefixCls,\n visible = _ref.visible,\n children = _ref.children,\n popup = _ref.popup,\n popupClassName = _ref.popupClassName,\n popupOffset = _ref.popupOffset,\n disabled = _ref.disabled,\n mode = _ref.mode,\n onVisibleChange = _ref.onVisibleChange;\n var _React$useContext = React.useContext(MenuContext),\n getPopupContainer = _React$useContext.getPopupContainer,\n rtl = _React$useContext.rtl,\n subMenuOpenDelay = _React$useContext.subMenuOpenDelay,\n subMenuCloseDelay = _React$useContext.subMenuCloseDelay,\n builtinPlacements = _React$useContext.builtinPlacements,\n triggerSubMenuAction = _React$useContext.triggerSubMenuAction,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n rootClassName = _React$useContext.rootClassName,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerVisible = _React$useState2[0],\n setInnerVisible = _React$useState2[1];\n var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);\n var popupPlacement = popupPlacementMap[mode];\n var targetMotion = getMotion(mode, motion, defaultMotions);\n var targetMotionRef = React.useRef(targetMotion);\n if (mode !== 'inline') {\n /**\n * PopupTrigger is only used for vertical and horizontal types.\n * When collapsed is unfolded, the inline animation will destroy the vertical animation.\n */\n targetMotionRef.current = targetMotion;\n }\n var mergedMotion = _objectSpread(_objectSpread({}, targetMotionRef.current), {}, {\n leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: true\n });\n\n // Delay to change visible\n var visibleRef = React.useRef();\n React.useEffect(function () {\n visibleRef.current = raf(function () {\n setInnerVisible(visible);\n });\n return function () {\n raf.cancel(visibleRef.current);\n };\n }, [visible]);\n return /*#__PURE__*/React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl), popupClassName, rootClassName),\n stretch: mode === 'horizontal' ? 'minWidth' : null,\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: innerVisible,\n popup: popup,\n popupAlign: popupOffset && {\n offset: popupOffset\n },\n action: disabled ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: onVisibleChange,\n forceRender: forceSubMenuRender,\n popupMotion: mergedMotion\n }, children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/motionUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport SubMenuList from \"./SubMenuList\";\nexport default function InlineSubMenuList(_ref) {\n var id = _ref.id,\n open = _ref.open,\n keyPath = _ref.keyPath,\n children = _ref.children;\n var fixedMode = 'inline';\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions,\n mode = _React$useContext.mode;\n\n // Always use latest mode check\n var sameModeRef = React.useRef(false);\n sameModeRef.current = mode === fixedMode;\n\n // We record `destroy` mark here since when mode change from `inline` to others.\n // The inline list should remove when motion end.\n var _React$useState = React.useState(!sameModeRef.current),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n destroy = _React$useState2[0],\n setDestroy = _React$useState2[1];\n var mergedOpen = sameModeRef.current ? open : false;\n\n // ================================= Effect =================================\n // Reset destroy state when mode change back\n React.useEffect(function () {\n if (sameModeRef.current) {\n setDestroy(false);\n }\n }, [mode]);\n\n // ================================= Render =================================\n var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions));\n\n // No need appear since nest inlineCollapse changed\n if (keyPath.length > 1) {\n mergedMotion.motionAppear = false;\n }\n\n // Hide inline list when mode changed and motion end\n var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n mergedMotion.onVisibleChanged = function (newVisible) {\n if (!sameModeRef.current && !newVisible) {\n setDestroy(true);\n }\n return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n };\n if (destroy) {\n return null;\n }\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n mode: fixedMode,\n locked: !sameModeRef.current\n }, /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: mergedOpen\n }, mergedMotion, {\n forceRender: forceSubMenuRender,\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }), function (_ref2) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(SubMenuList, {\n id: id,\n className: motionClassName,\n style: motionStyle\n }, children);\n }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"style\", \"className\", \"title\", \"eventKey\", \"warnKey\", \"disabled\", \"internalPopupClose\", \"children\", \"itemIcon\", \"expandIcon\", \"popupClassName\", \"popupOffset\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"onTitleClick\", \"onTitleMouseEnter\", \"onTitleMouseLeave\"],\n _excluded2 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport SubMenuList from \"./SubMenuList\";\nimport { parseChildren } from \"../utils/nodeUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport useMemoCallback from \"../hooks/useMemoCallback\";\nimport PopupTrigger from \"./PopupTrigger\";\nimport Icon from \"../Icon\";\nimport useActive from \"../hooks/useActive\";\nimport { warnItemProp } from \"../utils/warnUtil\";\nimport useDirectionStyle from \"../hooks/useDirectionStyle\";\nimport InlineSubMenuList from \"./InlineSubMenuList\";\nimport { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from \"../context/PathContext\";\nimport { useMenuId } from \"../context/IdContext\";\nimport PrivateContext from \"../context/PrivateContext\";\nvar InternalSubMenu = function InternalSubMenu(props) {\n var _classNames;\n var style = props.style,\n className = props.className,\n title = props.title,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n internalPopupClose = props.internalPopupClose,\n children = props.children,\n itemIcon = props.itemIcon,\n expandIcon = props.expandIcon,\n popupClassName = props.popupClassName,\n popupOffset = props.popupOffset,\n onClick = props.onClick,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onTitleClick = props.onTitleClick,\n onTitleMouseEnter = props.onTitleMouseEnter,\n onTitleMouseLeave = props.onTitleMouseLeave,\n restProps = _objectWithoutProperties(props, _excluded);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n openKeys = _React$useContext.openKeys,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n activeKey = _React$useContext.activeKey,\n selectedKeys = _React$useContext.selectedKeys,\n contextItemIcon = _React$useContext.itemIcon,\n contextExpandIcon = _React$useContext.expandIcon,\n onItemClick = _React$useContext.onItemClick,\n onOpenChange = _React$useContext.onOpenChange,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;\n var _React$useContext3 = React.useContext(PathUserContext),\n isSubPathKey = _React$useContext3.isSubPathKey;\n var connectedPath = useFullPath();\n var subMenuPrefixCls = \"\".concat(prefixCls, \"-submenu\");\n var mergedDisabled = contextDisabled || disabled;\n var elementRef = React.useRef();\n var popupRef = React.useRef();\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'SubMenu should not leave undefined `key`.');\n }\n\n // ================================ Icon ================================\n var mergedItemIcon = itemIcon || contextItemIcon;\n var mergedExpandIcon = expandIcon || contextExpandIcon;\n\n // ================================ Open ================================\n var originOpen = openKeys.includes(eventKey);\n var open = !overflowDisabled && originOpen;\n\n // =============================== Select ===============================\n var childrenSelected = isSubPathKey(selectedKeys, eventKey);\n\n // =============================== Active ===============================\n var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded2);\n\n // Fallback of active check to avoid hover on menu title or disabled item\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n childrenActive = _React$useState2[0],\n setChildrenActive = _React$useState2[1];\n var triggerChildrenActive = function triggerChildrenActive(newActive) {\n if (!mergedDisabled) {\n setChildrenActive(newActive);\n }\n };\n var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {\n triggerChildrenActive(true);\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {\n triggerChildrenActive(false);\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var mergedActive = React.useMemo(function () {\n if (active) {\n return active;\n }\n if (mode !== 'inline') {\n return childrenActive || isSubPathKey([activeKey], eventKey);\n }\n return false;\n }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]);\n\n // ========================== DirectionStyle ==========================\n var directionStyle = useDirectionStyle(connectedPath.length);\n\n // =============================== Events ===============================\n // >>>> Title click\n var onInternalTitleClick = function onInternalTitleClick(e) {\n // Skip if disabled\n if (mergedDisabled) {\n return;\n }\n onTitleClick === null || onTitleClick === void 0 ? void 0 : onTitleClick({\n key: eventKey,\n domEvent: e\n });\n\n // Trigger open by click when mode is `inline`\n if (mode === 'inline') {\n onOpenChange(eventKey, !originOpen);\n }\n };\n\n // >>>> Context for children click\n var onMergedItemClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n });\n\n // >>>>> Visible change\n var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n if (mode !== 'inline') {\n onOpenChange(eventKey, newVisible);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus() {\n onActive(eventKey);\n };\n\n // =============================== Render ===============================\n var popupId = domDataId && \"\".concat(domDataId, \"-popup\");\n\n // >>>>> Title\n var titleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"menuitem\",\n style: directionStyle,\n className: \"\".concat(subMenuPrefixCls, \"-title\"),\n tabIndex: mergedDisabled ? null : -1,\n ref: elementRef,\n title: typeof title === 'string' ? title : null,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId,\n \"aria-expanded\": open,\n \"aria-haspopup\": true,\n \"aria-controls\": popupId,\n \"aria-disabled\": mergedDisabled,\n onClick: onInternalTitleClick,\n onFocus: onInternalFocus\n }, activeProps), title, /*#__PURE__*/React.createElement(Icon, {\n icon: mode !== 'horizontal' ? mergedExpandIcon : null,\n props: _objectSpread(_objectSpread({}, props), {}, {\n isOpen: open,\n // [Legacy] Not sure why need this mark\n isSubMenu: true\n })\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(subMenuPrefixCls, \"-arrow\")\n })));\n\n // Cache mode if it change to `inline` which do not have popup motion\n var triggerModeRef = React.useRef(mode);\n if (mode !== 'inline' && connectedPath.length > 1) {\n triggerModeRef.current = 'vertical';\n } else {\n triggerModeRef.current = mode;\n }\n if (!overflowDisabled) {\n var triggerMode = triggerModeRef.current;\n\n // Still wrap with Trigger here since we need avoid react re-mount dom node\n // Which makes motion failed\n titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {\n mode: triggerMode,\n prefixCls: subMenuPrefixCls,\n visible: !internalPopupClose && open && mode !== 'inline',\n popupClassName: popupClassName,\n popupOffset: popupOffset,\n popup: /*#__PURE__*/React.createElement(MenuContextProvider\n // Special handle of horizontal mode\n , {\n mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode\n }, /*#__PURE__*/React.createElement(SubMenuList, {\n id: popupId,\n ref: popupRef\n }, children)),\n disabled: mergedDisabled,\n onVisibleChange: onPopupVisibleChange\n }, titleNode);\n }\n\n // >>>>> List node\n var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({\n role: \"none\"\n }, restProps, {\n component: \"li\",\n style: style,\n className: classNames(subMenuPrefixCls, \"\".concat(subMenuPrefixCls, \"-\").concat(mode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-open\"), open), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-active\"), mergedActive), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-selected\"), childrenSelected), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-disabled\"), mergedDisabled), _classNames)),\n onMouseEnter: onInternalMouseEnter,\n onMouseLeave: onInternalMouseLeave\n }), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {\n id: popupId,\n open: open,\n keyPath: connectedPath\n }, children));\n if (_internalRenderSubMenuItem) {\n listNode = _internalRenderSubMenuItem(listNode, props, {\n selected: childrenSelected,\n active: mergedActive,\n open: open,\n disabled: mergedDisabled\n });\n }\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n onItemClick: onMergedItemClick,\n mode: mode === 'horizontal' ? 'vertical' : mode,\n itemIcon: mergedItemIcon,\n expandIcon: mergedExpandIcon\n }, listNode);\n};\nexport default function SubMenu(props) {\n var eventKey = props.eventKey,\n children = props.children;\n var connectedKeyPath = useFullPath(eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n var renderNode;\n\n // ======================== Render ========================\n if (measure) {\n renderNode = childList;\n } else {\n renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, props, childList);\n }\n return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n value: connectedKeyPath\n }, renderNode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"rootClassName\", \"style\", \"className\", \"tabIndex\", \"items\", \"children\", \"direction\", \"id\", \"mode\", \"inlineCollapsed\", \"disabled\", \"disabledOverflow\", \"subMenuOpenDelay\", \"subMenuCloseDelay\", \"forceSubMenuRender\", \"defaultOpenKeys\", \"openKeys\", \"activeKey\", \"defaultActiveFirst\", \"selectable\", \"multiple\", \"defaultSelectedKeys\", \"selectedKeys\", \"onSelect\", \"onDeselect\", \"inlineIndent\", \"motion\", \"defaultMotions\", \"triggerSubMenuAction\", \"builtinPlacements\", \"itemIcon\", \"expandIcon\", \"overflowedIndicator\", \"overflowedIndicatorPopupClassName\", \"getPopupContainer\", \"onClick\", \"onOpenChange\", \"onKeyDown\", \"openAnimation\", \"openTransitionName\", \"_internalRenderMenuItem\", \"_internalRenderSubMenuItem\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useImperativeHandle } from 'react';\nimport { flushSync } from 'react-dom';\nimport isEqual from \"rc-util/es/isEqual\";\nimport { getMenuId, IdContext } from \"./context/IdContext\";\nimport MenuContextProvider from \"./context/MenuContext\";\nimport { PathRegisterContext, PathUserContext } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useAccessibility from \"./hooks/useAccessibility\";\nimport useKeyRecords, { OVERFLOW_KEY } from \"./hooks/useKeyRecords\";\nimport useMemoCallback from \"./hooks/useMemoCallback\";\nimport useUUID from \"./hooks/useUUID\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport { parseItems } from \"./utils/nodeUtil\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n\n/**\n * Menu modify after refactor:\n * ## Add\n * - disabled\n *\n * ## Remove\n * - openTransitionName\n * - openAnimation\n * - onDestroy\n * - siderCollapsed: Seems antd do not use this prop (Need test in antd)\n * - collapsedWidth: Seems this logic should be handle by antd Layout.Sider\n */\n\n// optimize for render\nvar EMPTY_LIST = [];\nvar Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _childList$, _classNames;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,\n rootClassName = _ref.rootClassName,\n style = _ref.style,\n className = _ref.className,\n _ref$tabIndex = _ref.tabIndex,\n tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n items = _ref.items,\n children = _ref.children,\n direction = _ref.direction,\n id = _ref.id,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,\n inlineCollapsed = _ref.inlineCollapsed,\n disabled = _ref.disabled,\n disabledOverflow = _ref.disabledOverflow,\n _ref$subMenuOpenDelay = _ref.subMenuOpenDelay,\n subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,\n _ref$subMenuCloseDela = _ref.subMenuCloseDelay,\n subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,\n forceSubMenuRender = _ref.forceSubMenuRender,\n defaultOpenKeys = _ref.defaultOpenKeys,\n openKeys = _ref.openKeys,\n activeKey = _ref.activeKey,\n defaultActiveFirst = _ref.defaultActiveFirst,\n _ref$selectable = _ref.selectable,\n selectable = _ref$selectable === void 0 ? true : _ref$selectable,\n _ref$multiple = _ref.multiple,\n multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n defaultSelectedKeys = _ref.defaultSelectedKeys,\n selectedKeys = _ref.selectedKeys,\n onSelect = _ref.onSelect,\n onDeselect = _ref.onDeselect,\n _ref$inlineIndent = _ref.inlineIndent,\n inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,\n motion = _ref.motion,\n defaultMotions = _ref.defaultMotions,\n _ref$triggerSubMenuAc = _ref.triggerSubMenuAction,\n triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,\n builtinPlacements = _ref.builtinPlacements,\n itemIcon = _ref.itemIcon,\n expandIcon = _ref.expandIcon,\n _ref$overflowedIndica = _ref.overflowedIndicator,\n overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,\n overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,\n getPopupContainer = _ref.getPopupContainer,\n onClick = _ref.onClick,\n onOpenChange = _ref.onOpenChange,\n onKeyDown = _ref.onKeyDown,\n openAnimation = _ref.openAnimation,\n openTransitionName = _ref.openTransitionName,\n _internalRenderMenuItem = _ref._internalRenderMenuItem,\n _internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var childList = React.useMemo(function () {\n return parseItems(children, items, EMPTY_LIST);\n }, [children, items]);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mounted = _React$useState2[0],\n setMounted = _React$useState2[1];\n var containerRef = React.useRef();\n var uuid = useUUID(id);\n var isRtl = direction === 'rtl';\n\n // ========================= Warn =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n }\n\n // ========================= Open =========================\n var _useMergedState = useMergedState(defaultOpenKeys, {\n value: openKeys,\n postState: function postState(keys) {\n return keys || EMPTY_LIST;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpenKeys = _useMergedState2[0],\n setMergedOpenKeys = _useMergedState2[1];\n\n // React 18 will merge mouse event which means we open key will not sync\n // ref: https://github.com/ant-design/ant-design/issues/38818\n var triggerOpenKeys = function triggerOpenKeys(keys) {\n var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n function doUpdate() {\n setMergedOpenKeys(keys);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(keys);\n }\n if (forceFlush) {\n flushSync(doUpdate);\n } else {\n doUpdate();\n }\n };\n\n // >>>>> Cache & Reset open keys when inlineCollapsed changed\n var _React$useState3 = React.useState(mergedOpenKeys),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n inlineCacheOpenKeys = _React$useState4[0],\n setInlineCacheOpenKeys = _React$useState4[1];\n var mountRef = React.useRef(false);\n\n // ========================= Mode =========================\n var _React$useMemo = React.useMemo(function () {\n if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n return ['vertical', inlineCollapsed];\n }\n return [mode, false];\n }, [mode, inlineCollapsed]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n mergedMode = _React$useMemo2[0],\n mergedInlineCollapsed = _React$useMemo2[1];\n var isInlineMode = mergedMode === 'inline';\n var _React$useState5 = React.useState(mergedMode),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n internalMode = _React$useState6[0],\n setInternalMode = _React$useState6[1];\n var _React$useState7 = React.useState(mergedInlineCollapsed),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalInlineCollapsed = _React$useState8[0],\n setInternalInlineCollapsed = _React$useState8[1];\n React.useEffect(function () {\n setInternalMode(mergedMode);\n setInternalInlineCollapsed(mergedInlineCollapsed);\n if (!mountRef.current) {\n return;\n }\n // Synchronously update MergedOpenKeys\n if (isInlineMode) {\n setMergedOpenKeys(inlineCacheOpenKeys);\n } else {\n // Trigger open event in case its in control\n triggerOpenKeys(EMPTY_LIST);\n }\n }, [mergedMode, mergedInlineCollapsed]);\n\n // ====================== Responsive ======================\n var _React$useState9 = React.useState(0),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n lastVisibleIndex = _React$useState10[0],\n setLastVisibleIndex = _React$useState10[1];\n var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow;\n\n // Cache\n React.useEffect(function () {\n if (isInlineMode) {\n setInlineCacheOpenKeys(mergedOpenKeys);\n }\n }, [mergedOpenKeys]);\n React.useEffect(function () {\n mountRef.current = true;\n return function () {\n mountRef.current = false;\n };\n }, []);\n\n // ========================= Path =========================\n var _useKeyRecords = useKeyRecords(),\n registerPath = _useKeyRecords.registerPath,\n unregisterPath = _useKeyRecords.unregisterPath,\n refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,\n isSubPathKey = _useKeyRecords.isSubPathKey,\n getKeyPath = _useKeyRecords.getKeyPath,\n getKeys = _useKeyRecords.getKeys,\n getSubPathKeys = _useKeyRecords.getSubPathKeys;\n var registerPathContext = React.useMemo(function () {\n return {\n registerPath: registerPath,\n unregisterPath: unregisterPath\n };\n }, [registerPath, unregisterPath]);\n var pathUserContext = React.useMemo(function () {\n return {\n isSubPathKey: isSubPathKey\n };\n }, [isSubPathKey]);\n React.useEffect(function () {\n refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {\n return child.key;\n }));\n }, [lastVisibleIndex, allVisible]);\n\n // ======================== Active ========================\n var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {\n value: activeKey\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedActiveKey = _useMergedState4[0],\n setMergedActiveKey = _useMergedState4[1];\n var onActive = useMemoCallback(function (key) {\n setMergedActiveKey(key);\n });\n var onInactive = useMemoCallback(function () {\n setMergedActiveKey(undefined);\n });\n useImperativeHandle(ref, function () {\n return {\n list: containerRef.current,\n focus: function focus(options) {\n var _childList$find;\n var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : (_childList$find = childList.find(function (node) {\n return !node.props.disabled;\n })) === null || _childList$find === void 0 ? void 0 : _childList$find.key;\n if (shouldFocusKey) {\n var _containerRef$current, _containerRef$current2, _containerRef$current3;\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.querySelector(\"li[data-menu-id='\".concat(getMenuId(uuid, shouldFocusKey), \"']\"))) === null || _containerRef$current2 === void 0 ? void 0 : (_containerRef$current3 = _containerRef$current2.focus) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.call(_containerRef$current2, options);\n }\n }\n };\n });\n\n // ======================== Select ========================\n // >>>>> Select keys\n var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {\n value: selectedKeys,\n // Legacy convert key to array\n postState: function postState(keys) {\n if (Array.isArray(keys)) {\n return keys;\n }\n if (keys === null || keys === undefined) {\n return EMPTY_LIST;\n }\n return [keys];\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedSelectKeys = _useMergedState6[0],\n setMergedSelectKeys = _useMergedState6[1];\n\n // >>>>> Trigger select\n var triggerSelection = function triggerSelection(info) {\n if (selectable) {\n // Insert or Remove\n var targetKey = info.key;\n var exist = mergedSelectKeys.includes(targetKey);\n var newSelectKeys;\n if (multiple) {\n if (exist) {\n newSelectKeys = mergedSelectKeys.filter(function (key) {\n return key !== targetKey;\n });\n } else {\n newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);\n }\n } else {\n newSelectKeys = [targetKey];\n }\n setMergedSelectKeys(newSelectKeys);\n\n // Trigger event\n var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n selectedKeys: newSelectKeys\n });\n if (exist) {\n onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(selectInfo);\n } else {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectInfo);\n }\n }\n\n // Whatever selectable, always close it\n if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {\n triggerOpenKeys(EMPTY_LIST);\n }\n };\n\n // ========================= Open =========================\n /**\n * Click for item. SubMenu do not have selection status\n */\n var onInternalClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n triggerSelection(info);\n });\n var onInternalOpenChange = useMemoCallback(function (key, open) {\n var newOpenKeys = mergedOpenKeys.filter(function (k) {\n return k !== key;\n });\n if (open) {\n newOpenKeys.push(key);\n } else if (internalMode !== 'inline') {\n // We need find all related popup to close\n var subPathKeys = getSubPathKeys(key);\n newOpenKeys = newOpenKeys.filter(function (k) {\n return !subPathKeys.has(k);\n });\n }\n if (!isEqual(mergedOpenKeys, newOpenKeys, true)) {\n triggerOpenKeys(newOpenKeys, true);\n }\n });\n var getInternalPopupContainer = useMemoCallback(getPopupContainer);\n\n // ==================== Accessibility =====================\n var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {\n var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);\n onInternalOpenChange(key, nextOpen);\n };\n var onInternalKeyDown = useAccessibility(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);\n\n // ======================== Effect ========================\n React.useEffect(function () {\n setMounted(true);\n }, []);\n\n // ======================= Context ========================\n var privateContext = React.useMemo(function () {\n return {\n _internalRenderMenuItem: _internalRenderMenuItem,\n _internalRenderSubMenuItem: _internalRenderSubMenuItem\n };\n }, [_internalRenderMenuItem, _internalRenderSubMenuItem]);\n\n // ======================== Render ========================\n\n // >>>>> Children\n var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList :\n // Need wrap for overflow dropdown that do not response for open\n childList.map(function (child, index) {\n return (\n /*#__PURE__*/\n // Always wrap provider to avoid sub node re-mount\n React.createElement(MenuContextProvider, {\n key: child.key,\n overflowDisabled: index > lastVisibleIndex\n }, child)\n );\n });\n\n // >>>>> Container\n var container = /*#__PURE__*/React.createElement(Overflow, _extends({\n id: id,\n ref: containerRef,\n prefixCls: \"\".concat(prefixCls, \"-overflow\"),\n component: \"ul\",\n itemComponent: MenuItem,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-root\"), \"\".concat(prefixCls, \"-\").concat(internalMode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline-collapsed\"), internalInlineCollapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), isRtl), _classNames), rootClassName),\n dir: direction,\n style: style,\n role: \"menu\",\n tabIndex: tabIndex,\n data: wrappedChildList,\n renderRawItem: function renderRawItem(node) {\n return node;\n },\n renderRawRest: function renderRawRest(omitItems) {\n // We use origin list since wrapped list use context to prevent open\n var len = omitItems.length;\n var originOmitItems = len ? childList.slice(-len) : null;\n return /*#__PURE__*/React.createElement(SubMenu, {\n eventKey: OVERFLOW_KEY,\n title: overflowedIndicator,\n disabled: allVisible,\n internalPopupClose: len === 0,\n popupClassName: overflowedIndicatorPopupClassName\n }, originOmitItems);\n },\n maxCount: internalMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,\n ssr: \"full\",\n \"data-menu-list\": true,\n onVisibleChange: function onVisibleChange(newLastIndex) {\n setLastVisibleIndex(newLastIndex);\n },\n onKeyDown: onInternalKeyDown\n }, restProps));\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(PrivateContext.Provider, {\n value: privateContext\n }, /*#__PURE__*/React.createElement(IdContext.Provider, {\n value: uuid\n }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n mode: internalMode,\n openKeys: mergedOpenKeys,\n rtl: isRtl\n // Disabled\n ,\n disabled: disabled\n // Motion\n ,\n motion: mounted ? motion : null,\n defaultMotions: mounted ? defaultMotions : null\n // Active\n ,\n activeKey: mergedActiveKey,\n onActive: onActive,\n onInactive: onInactive\n // Selection\n ,\n selectedKeys: mergedSelectKeys\n // Level\n ,\n inlineIndent: inlineIndent\n // Popup\n ,\n subMenuOpenDelay: subMenuOpenDelay,\n subMenuCloseDelay: subMenuCloseDelay,\n forceSubMenuRender: forceSubMenuRender,\n builtinPlacements: builtinPlacements,\n triggerSubMenuAction: triggerSubMenuAction,\n getPopupContainer: getInternalPopupContainer\n // Icon\n ,\n itemIcon: itemIcon,\n expandIcon: expandIcon\n // Events\n ,\n onItemClick: onInternalClick,\n onOpenChange: onInternalOpenChange\n }, /*#__PURE__*/React.createElement(PathUserContext.Provider, {\n value: pathUserContext\n }, container), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'none'\n },\n \"aria-hidden\": true\n }, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {\n value: registerPathContext\n }, childList)))));\n});\nexport default Menu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"title\", \"eventKey\", \"children\"],\n _excluded2 = [\"children\"];\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport { parseChildren } from \"./utils/nodeUtil\";\nvar InternalMenuItemGroup = function InternalMenuItemGroup(_ref) {\n var className = _ref.className,\n title = _ref.title,\n eventKey = _ref.eventKey,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n role: \"presentation\"\n }, restProps, {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n className: classNames(groupPrefixCls, className)\n }), /*#__PURE__*/React.createElement(\"div\", {\n role: \"presentation\",\n className: \"\".concat(groupPrefixCls, \"-title\"),\n title: typeof title === 'string' ? title : undefined\n }, title), /*#__PURE__*/React.createElement(\"ul\", {\n role: \"group\",\n className: \"\".concat(groupPrefixCls, \"-list\")\n }, children));\n};\nexport default function MenuItemGroup(_ref2) {\n var children = _ref2.children,\n props = _objectWithoutProperties(_ref2, _excluded2);\n var connectedKeyPath = useFullPath(props.eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n var measure = useMeasure();\n if (measure) {\n return childList;\n }\n return /*#__PURE__*/React.createElement(InternalMenuItemGroup, omit(props, ['warnKey']), childList);\n}","import * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useMeasure } from \"./context/PathContext\";\nexport default function Divider(_ref) {\n var className = _ref.className,\n style = _ref.style;\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var measure = useMeasure();\n if (measure) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n style: style\n });\n}","import Menu from \"./Menu\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport MenuItemGroup from \"./MenuItemGroup\";\nimport { useFullPath } from \"./context/PathContext\";\nimport Divider from \"./Divider\";\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, /** @private Only used for antd internal. Do not use in your production. */\nuseFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport { Divider } from 'rc-menu';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar MenuDivider = function MenuDivider(_a) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n dashed = _a.dashed,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"dashed\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('menu', customizePrefixCls);\n var classString = classNames(_defineProperty({}, \"\".concat(prefixCls, \"-item-divider-dashed\"), !!dashed), className);\n return /*#__PURE__*/React.createElement(Divider, _extends({\n className: classString\n }, restProps));\n};\nexport default MenuDivider;","import { createContext } from 'react';\nvar MenuContext = /*#__PURE__*/createContext({\n prefixCls: '',\n firstLevel: true,\n inlineCollapsed: false\n});\nexport default MenuContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport { Item } from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { SiderContext } from '../layout/Sider';\nimport Tooltip from '../tooltip';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nvar MenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuItem, _React$Component);\n var _super = _createSuper(MenuItem);\n function MenuItem() {\n var _this;\n _classCallCheck(this, MenuItem);\n _this = _super.apply(this, arguments);\n _this.renderItem = function (_ref) {\n var _classNames;\n var siderCollapsed = _ref.siderCollapsed;\n var _a;\n var _this$context = _this.context,\n prefixCls = _this$context.prefixCls,\n firstLevel = _this$context.firstLevel,\n inlineCollapsed = _this$context.inlineCollapsed,\n direction = _this$context.direction,\n disableMenuItemTitleTooltip = _this$context.disableMenuItemTitleTooltip;\n var _this$props = _this.props,\n className = _this$props.className,\n children = _this$props.children;\n var _b = _this.props,\n title = _b.title,\n icon = _b.icon,\n danger = _b.danger,\n rest = __rest(_b, [\"title\", \"icon\", \"danger\"]);\n var tooltipTitle = title;\n if (typeof title === 'undefined') {\n tooltipTitle = firstLevel ? children : '';\n } else if (title === false) {\n tooltipTitle = '';\n }\n var tooltipProps = {\n title: tooltipTitle\n };\n if (!siderCollapsed && !inlineCollapsed) {\n tooltipProps.title = null;\n // Reset `open` to fix control mode tooltip display not correct\n // ref: https://github.com/ant-design/ant-design/issues/16742\n tooltipProps.open = false;\n }\n var childrenLength = toArray(children).length;\n var returnNode = /*#__PURE__*/React.createElement(Item, _extends({}, rest, {\n className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-danger\"), danger), _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-only-child\"), (icon ? childrenLength + 1 : childrenLength) === 1), _classNames), className),\n title: typeof title === 'string' ? title : undefined\n }), cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', \"\".concat(prefixCls, \"-item-icon\"))\n }), _this.renderItemChildren(inlineCollapsed));\n if (!disableMenuItemTitleTooltip) {\n returnNode = /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltipProps, {\n placement: direction === 'rtl' ? 'left' : 'right',\n overlayClassName: \"\".concat(prefixCls, \"-inline-collapsed-tooltip\")\n }), returnNode);\n }\n return returnNode;\n };\n return _this;\n }\n _createClass(MenuItem, [{\n key: \"renderItemChildren\",\n value: function renderItemChildren(inlineCollapsed) {\n var _this$context2 = this.context,\n prefixCls = _this$context2.prefixCls,\n firstLevel = _this$context2.firstLevel;\n var _this$props2 = this.props,\n icon = _this$props2.icon,\n children = _this$props2.children;\n var wrapNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, children);\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n if (!icon || isValidElement(children) && children.type === 'span') {\n if (children && inlineCollapsed && firstLevel && typeof children === 'string') {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inline-collapsed-noicon\")\n }, children.charAt(0));\n }\n }\n return wrapNode;\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(SiderContext.Consumer, null, this.renderItem);\n }\n }]);\n return MenuItem;\n}(React.Component);\nexport { MenuItem as default };\nMenuItem.contextType = MenuContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport { SubMenu as RcSubMenu, useFullPath } from 'rc-menu';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nfunction SubMenu(props) {\n var _a;\n var popupClassName = props.popupClassName,\n icon = props.icon,\n title = props.title,\n theme = props.theme;\n var context = React.useContext(MenuContext);\n var prefixCls = context.prefixCls,\n inlineCollapsed = context.inlineCollapsed,\n antdMenuTheme = context.antdMenuTheme;\n var parentPath = useFullPath();\n var titleNode;\n if (!icon) {\n titleNode = inlineCollapsed && !parentPath.length && title && typeof title === 'string' ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inline-collapsed-noicon\")\n }, title.charAt(0)) : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, title);\n } else {\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n var titleIsSpan = isValidElement(title) && title.type === 'span';\n titleNode = /*#__PURE__*/React.createElement(React.Fragment, null, cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', \"\".concat(prefixCls, \"-item-icon\"))\n }), titleIsSpan ? title : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, title));\n }\n var contextValue = React.useMemo(function () {\n return _extends(_extends({}, context), {\n firstLevel: false\n });\n }, [context]);\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcSubMenu, _extends({}, omit(props, ['icon']), {\n title: titleNode,\n popupClassName: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(theme || antdMenuTheme), popupClassName)\n })));\n}\nexport default SubMenu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { ItemGroup } from 'rc-menu';\nimport * as React from 'react';\nimport MenuDivider from '../MenuDivider';\nimport MenuItem from '../MenuItem';\nimport SubMenu from '../SubMenu';\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _a = opt,\n label = _a.label,\n children = _a.children,\n key = _a.key,\n type = _a.type,\n restProps = __rest(_a, [\"label\", \"children\", \"key\", \"type\"]);\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(ItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(MenuDivider, _extends({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\n// FIXME: Move logic here in v5\n/**\n * We simply convert `items` to ReactNode for reuse origin component logic. But we need move all the\n * logic from component into this hooks when in v5\n */\nexport default function useItems(items) {\n return React.useMemo(function () {\n if (!items) {\n return items;\n }\n return convertItemsToNodes(items);\n }, [items]);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nvar OverrideContext = /*#__PURE__*/React.createContext(null);\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport var OverrideProvider = function OverrideProvider(_a) {\n var children = _a.children,\n restProps = __rest(_a, [\"children\"]);\n var override = React.useContext(OverrideContext);\n var context = React.useMemo(function () {\n return _extends(_extends({}, override), restProps);\n }, [override, restProps.prefixCls,\n // restProps.expandIcon, Not mark as deps since this is a ReactNode\n restProps.mode, restProps.selectable\n // restProps.validator, Not mark as deps since this is a function\n ]);\n\n return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: context\n }, children);\n};\nexport default OverrideContext;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport RcMenu, { ItemGroup } from 'rc-menu';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { SiderContext } from '../layout/Sider';\nimport collapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport useItems from './hooks/useItems';\nimport MenuContext from './MenuContext';\nimport MenuDivider from './MenuDivider';\nimport Item from './MenuItem';\nimport OverrideContext from './OverrideContext';\nimport SubMenu from './SubMenu';\nvar InternalMenu = /*#__PURE__*/forwardRef(function (props, ref) {\n var _a;\n var override = React.useContext(OverrideContext) || {};\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n getPopupContainer = _React$useContext.getPopupContainer,\n direction = _React$useContext.direction;\n var rootPrefixCls = getPrefixCls();\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n _props$theme = props.theme,\n theme = _props$theme === void 0 ? 'light' : _props$theme,\n expandIcon = props.expandIcon,\n _internalDisableMenuItemTitleTooltip = props._internalDisableMenuItemTitleTooltip,\n inlineCollapsed = props.inlineCollapsed,\n siderCollapsed = props.siderCollapsed,\n items = props.items,\n children = props.children,\n mode = props.mode,\n selectable = props.selectable,\n onClick = props.onClick,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"theme\", \"expandIcon\", \"_internalDisableMenuItemTitleTooltip\", \"inlineCollapsed\", \"siderCollapsed\", \"items\", \"children\", \"mode\", \"selectable\", \"onClick\"]);\n var passedProps = omit(restProps, ['collapsedWidth']);\n // ========================= Items ===========================\n var mergedChildren = useItems(items) || children;\n // ======================== Warning ==========================\n process.env.NODE_ENV !== \"production\" ? warning(!('inlineCollapsed' in props && mode !== 'inline'), 'Menu', '`inlineCollapsed` should only be used when `mode` is inline.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(props.siderCollapsed !== undefined && 'inlineCollapsed' in props), 'Menu', '`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning('items' in props && !children, 'Menu', '`children` will be removed in next major version. Please use `items` instead.') : void 0;\n (_a = override.validator) === null || _a === void 0 ? void 0 : _a.call(override, {\n mode: mode\n });\n // ========================== Click ==========================\n // Tell dropdown that item clicked\n var onItemClick = useEvent(function () {\n var _a;\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, arguments);\n (_a = override === null || override === void 0 ? void 0 : override.onClick) === null || _a === void 0 ? void 0 : _a.call(override);\n });\n // ========================== Mode ===========================\n var mergedMode = override.mode || mode;\n // ======================= Selectable ========================\n var mergedSelectable = selectable !== null && selectable !== void 0 ? selectable : override.selectable;\n // ======================== Collapsed ========================\n // Inline Collapsed\n var mergedInlineCollapsed = React.useMemo(function () {\n if (siderCollapsed !== undefined) {\n return siderCollapsed;\n }\n return inlineCollapsed;\n }, [inlineCollapsed, siderCollapsed]);\n var defaultMotions = {\n horizontal: {\n motionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n },\n inline: collapseMotion,\n other: {\n motionName: \"\".concat(rootPrefixCls, \"-zoom-big\")\n }\n };\n var prefixCls = getPrefixCls('menu', customizePrefixCls || override.prefixCls);\n var menuClassName = classNames(\"\".concat(prefixCls, \"-\").concat(theme), className);\n // ====================== Expand Icon ========================\n var mergedExpandIcon;\n if (typeof expandIcon === 'function') {\n mergedExpandIcon = expandIcon;\n } else {\n mergedExpandIcon = cloneElement(expandIcon || override.expandIcon, {\n className: \"\".concat(prefixCls, \"-submenu-expand-icon\")\n });\n }\n // ======================== Context ==========================\n var contextValue = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n inlineCollapsed: mergedInlineCollapsed || false,\n antdMenuTheme: theme,\n direction: direction,\n firstLevel: true,\n disableMenuItemTitleTooltip: _internalDisableMenuItemTitleTooltip\n };\n }, [prefixCls, mergedInlineCollapsed, theme, direction, _internalDisableMenuItemTitleTooltip]);\n // ========================= Render ==========================\n return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcMenu, _extends({\n getPopupContainer: getPopupContainer,\n overflowedIndicator: /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n overflowedIndicatorPopupClassName: \"\".concat(prefixCls, \"-\").concat(theme),\n mode: mergedMode,\n selectable: mergedSelectable,\n onClick: onItemClick\n }, passedProps, {\n inlineCollapsed: mergedInlineCollapsed,\n className: menuClassName,\n prefixCls: prefixCls,\n direction: direction,\n defaultMotions: defaultMotions,\n expandIcon: mergedExpandIcon,\n ref: ref\n }), mergedChildren)));\n});\n// We should keep this as ref-able\nvar Menu = /*#__PURE__*/function (_React$Component) {\n _inherits(Menu, _React$Component);\n var _super = _createSuper(Menu);\n function Menu() {\n var _this;\n _classCallCheck(this, Menu);\n _this = _super.apply(this, arguments);\n _this.focus = function (options) {\n var _a;\n (_a = _this.menu) === null || _a === void 0 ? void 0 : _a.focus(options);\n };\n return _this;\n }\n _createClass(Menu, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n return /*#__PURE__*/React.createElement(SiderContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalMenu, _extends({\n ref: function ref(node) {\n _this2.menu = node;\n }\n }, _this2.props, context));\n });\n }\n }]);\n return Menu;\n}(React.Component);\nMenu.Divider = MenuDivider;\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.ItemGroup = ItemGroup;\nexport default Menu;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};\nexport default wrapperRaf;","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof Element) {\n if (element.offsetParent) {\n return true;\n }\n if (element.getBBox) {\n var _getBBox = element.getBBox(),\n width = _getBBox.width,\n height = _getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n }\n return false;\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from \"./isVisible\";\nfunction focusable(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (isVisible(node)) {\n var nodeName = node.nodeName.toLowerCase();\n var isFocusableElement =\n // Focusable element\n ['input', 'select', 'textarea', 'button'].includes(nodeName) ||\n // Editable element\n node.isContentEditable ||\n // Anchor with href element\n nodeName === 'a' && !!node.getAttribute('href');\n\n // Get tabIndex\n var tabIndexAttr = node.getAttribute('tabindex');\n var tabIndexNum = Number(tabIndexAttr);\n\n // Parse as number if validate\n var tabIndex = null;\n if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n tabIndex = tabIndexNum;\n } else if (isFocusableElement && tabIndex === null) {\n tabIndex = 0;\n }\n\n // Block focusable if disabled\n if (isFocusableElement && node.disabled) {\n tabIndex = null;\n }\n return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n }\n return false;\n}\nexport function getFocusNodeList(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n return focusable(child, includePositive);\n });\n if (focusable(node, includePositive)) {\n res.unshift(node);\n }\n return res;\n}\nvar lastFocusElement = null;\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function saveLastFocusNode() {\n lastFocusElement = document.activeElement;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function clearLastFocusNode() {\n lastFocusElement = null;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function backLastFocusNode() {\n if (lastFocusElement) {\n try {\n // 元素可能已经被移动了\n lastFocusElement.focus();\n\n /* eslint-disable no-empty */\n } catch (e) {\n // empty\n }\n /* eslint-enable no-empty */\n }\n}\n\nexport function limitTabRange(node, e) {\n if (e.keyCode === 9) {\n var tabNodeList = getFocusNodeList(node);\n var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n if (leavingTab) {\n var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n target.focus();\n e.preventDefault();\n }\n }\n}","import * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nvar ESC = KeyCode.ESC,\n TAB = KeyCode.TAB;\nexport default function useAccessibility(_ref) {\n var visible = _ref.visible,\n setTriggerVisible = _ref.setTriggerVisible,\n triggerRef = _ref.triggerRef,\n onVisibleChange = _ref.onVisibleChange,\n autoFocus = _ref.autoFocus;\n var focusMenuRef = React.useRef(false);\n\n var handleCloseMenuAndReturnFocus = function handleCloseMenuAndReturnFocus() {\n if (visible && triggerRef.current) {\n var _triggerRef$current, _triggerRef$current$t, _triggerRef$current$t2, _triggerRef$current$t3;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$t = _triggerRef$current.triggerRef) === null || _triggerRef$current$t === void 0 ? void 0 : (_triggerRef$current$t2 = _triggerRef$current$t.current) === null || _triggerRef$current$t2 === void 0 ? void 0 : (_triggerRef$current$t3 = _triggerRef$current$t2.focus) === null || _triggerRef$current$t3 === void 0 ? void 0 : _triggerRef$current$t3.call(_triggerRef$current$t2);\n setTriggerVisible(false);\n\n if (typeof onVisibleChange === 'function') {\n onVisibleChange(false);\n }\n }\n };\n\n var focusMenu = function focusMenu() {\n var _triggerRef$current2, _triggerRef$current2$, _triggerRef$current2$2, _triggerRef$current2$3;\n\n var elements = getFocusNodeList((_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.popupRef) === null || _triggerRef$current2$ === void 0 ? void 0 : (_triggerRef$current2$2 = _triggerRef$current2$.current) === null || _triggerRef$current2$2 === void 0 ? void 0 : (_triggerRef$current2$3 = _triggerRef$current2$2.getElement) === null || _triggerRef$current2$3 === void 0 ? void 0 : _triggerRef$current2$3.call(_triggerRef$current2$2));\n var firstElement = elements[0];\n\n if (firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus) {\n firstElement.focus();\n focusMenuRef.current = true;\n return true;\n }\n\n return false;\n };\n\n var handleKeyDown = function handleKeyDown(event) {\n switch (event.keyCode) {\n case ESC:\n handleCloseMenuAndReturnFocus();\n break;\n\n case TAB:\n {\n var focusResult = false;\n\n if (!focusMenuRef.current) {\n focusResult = focusMenu();\n }\n\n if (focusResult) {\n event.preventDefault();\n } else {\n handleCloseMenuAndReturnFocus();\n }\n\n break;\n }\n }\n };\n\n React.useEffect(function () {\n if (visible) {\n window.addEventListener('keydown', handleKeyDown);\n\n if (autoFocus) {\n // FIXME: hack with raf\n raf(focusMenu, 3);\n }\n\n return function () {\n window.removeEventListener('keydown', handleKeyDown);\n focusMenuRef.current = false;\n };\n }\n\n return function () {\n focusMenuRef.current = false;\n };\n }, [visible]); // eslint-disable-line react-hooks/exhaustive-deps\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\", \"autoFocus\"];\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport Placements from './placements';\nimport useAccessibility from './hooks/useAccessibility';\n\nfunction Dropdown(props, ref) {\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n autoFocus = props.autoFocus,\n otherProps = _objectWithoutProperties(props, _excluded);\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n useAccessibility({\n visible: mergedVisible,\n setTriggerVisible: setTriggerVisible,\n triggerRef: triggerRef,\n onVisibleChange: props.onVisibleChange,\n autoFocus: autoFocus\n });\n\n var getOverlayElement = function getOverlayElement() {\n var overlay = props.overlay;\n var overlayElement;\n\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n\n return overlayElement;\n };\n\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n setTriggerVisible(false);\n\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n };\n\n var onVisibleChange = function onVisibleChange(newVisible) {\n var onVisibleChangeProp = props.onVisibleChange;\n setTriggerVisible(newVisible);\n\n if (typeof onVisibleChangeProp === 'function') {\n onVisibleChangeProp(newVisible);\n }\n };\n\n var getMenuElement = function getMenuElement() {\n var overlayElement = getOverlayElement();\n return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), overlayElement);\n };\n\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n var overlay = props.overlay;\n\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n\n return getMenuElement();\n };\n\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n\n return !alignPoint;\n };\n\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n\n if (openClassName !== undefined) {\n return openClassName;\n }\n\n return \"\".concat(prefixCls, \"-open\");\n };\n\n var renderChildren = function renderChildren() {\n var children = props.children;\n var childrenProps = children.props ? children.props : {};\n var childClassName = classNames(childrenProps.className, getOpenClassName());\n return mergedVisible && children ? /*#__PURE__*/React.cloneElement(children, {\n className: childClassName\n }) : children;\n };\n\n var triggerHideAction = hideAction;\n\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _objectSpread(_objectSpread({\n builtinPlacements: placements\n }, otherProps), {}, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: onVisibleChange,\n onPopupClick: onClick,\n getPopupContainer: getPopupContainer\n }), renderChildren());\n}\n\nexport default /*#__PURE__*/React.forwardRef(Dropdown);","import Dropdown from './Dropdown';\nexport default Dropdown;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { SpaceContext } from '.';\nexport default function Item(_ref) {\n var className = _ref.className,\n direction = _ref.direction,\n index = _ref.index,\n marginDirection = _ref.marginDirection,\n children = _ref.children,\n split = _ref.split,\n wrap = _ref.wrap;\n var _React$useContext = React.useContext(SpaceContext),\n horizontalSize = _React$useContext.horizontalSize,\n verticalSize = _React$useContext.verticalSize,\n latestIndex = _React$useContext.latestIndex,\n supportFlexGap = _React$useContext.supportFlexGap;\n var style = {};\n if (!supportFlexGap) {\n if (direction === 'vertical') {\n if (index < latestIndex) {\n style = {\n marginBottom: horizontalSize / (split ? 2 : 1)\n };\n }\n } else {\n style = _extends(_extends({}, index < latestIndex && _defineProperty({}, marginDirection, horizontalSize / (split ? 2 : 1))), wrap && {\n paddingBottom: verticalSize\n });\n }\n }\n if (children === null || children === undefined) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, children), index < latestIndex && split && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(className, \"-split\"),\n style: style\n }, split));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport Item from './Item';\nimport Compact from './Compact';\nexport var SpaceContext = /*#__PURE__*/React.createContext({\n latestIndex: 0,\n horizontalSize: 0,\n verticalSize: 0,\n supportFlexGap: false\n});\nvar spaceSize = {\n small: 8,\n middle: 16,\n large: 24\n};\nfunction getNumberSize(size) {\n return typeof size === 'string' ? spaceSize[size] : size || 0;\n}\nvar Space = function Space(props) {\n var _classNames;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n space = _React$useContext.space,\n directionConfig = _React$useContext.direction;\n var _props$size = props.size,\n size = _props$size === void 0 ? (space === null || space === void 0 ? void 0 : space.size) || 'small' : _props$size,\n align = props.align,\n className = props.className,\n children = props.children,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'horizontal' : _props$direction,\n customizePrefixCls = props.prefixCls,\n split = props.split,\n style = props.style,\n _props$wrap = props.wrap,\n wrap = _props$wrap === void 0 ? false : _props$wrap,\n otherProps = __rest(props, [\"size\", \"align\", \"className\", \"children\", \"direction\", \"prefixCls\", \"split\", \"style\", \"wrap\"]);\n var supportFlexGap = useFlexGapSupport();\n var _React$useMemo = React.useMemo(function () {\n return (Array.isArray(size) ? size : [size, size]).map(function (item) {\n return getNumberSize(item);\n });\n }, [size]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n horizontalSize = _React$useMemo2[0],\n verticalSize = _React$useMemo2[1];\n var childNodes = toArray(children, {\n keepEmpty: true\n });\n var mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align;\n var prefixCls = getPrefixCls('space', customizePrefixCls);\n var cn = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(direction), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), directionConfig === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-align-\").concat(mergedAlign), mergedAlign), _classNames), className);\n var itemClassName = \"\".concat(prefixCls, \"-item\");\n var marginDirection = directionConfig === 'rtl' ? 'marginLeft' : 'marginRight';\n // Calculate latest one\n var latestIndex = 0;\n var nodes = childNodes.map(function (child, i) {\n if (child !== null && child !== undefined) {\n latestIndex = i;\n }\n var key = child && child.key || \"\".concat(itemClassName, \"-\").concat(i);\n return /*#__PURE__*/React.createElement(Item, {\n className: itemClassName,\n key: key,\n direction: direction,\n index: i,\n marginDirection: marginDirection,\n split: split,\n wrap: wrap\n }, child);\n });\n var spaceContext = React.useMemo(function () {\n return {\n horizontalSize: horizontalSize,\n verticalSize: verticalSize,\n latestIndex: latestIndex,\n supportFlexGap: supportFlexGap\n };\n }, [horizontalSize, verticalSize, latestIndex, supportFlexGap]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n var gapStyle = {};\n if (wrap) {\n gapStyle.flexWrap = 'wrap';\n // Patch for gap not support\n if (!supportFlexGap) {\n gapStyle.marginBottom = -verticalSize;\n }\n }\n if (supportFlexGap) {\n gapStyle.columnGap = horizontalSize;\n gapStyle.rowGap = verticalSize;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: cn,\n style: _extends(_extends({}, gapStyle), style)\n }, otherProps), /*#__PURE__*/React.createElement(SpaceContext.Provider, {\n value: spaceContext\n }, nodes));\n};\nvar CompoundedSpace = Space;\nCompoundedSpace.Compact = Compact;\nexport default CompoundedSpace;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { detectFlexGapSupported } from '../styleChecker';\nexport default (function () {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n flexible = _React$useState2[0],\n setFlexible = _React$useState2[1];\n React.useEffect(function () {\n setFlexible(detectFlexGapSupported());\n }, []);\n return flexible;\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport { useCompactItemContext } from '../space/Compact';\nimport Dropdown from './dropdown';\nimport Space from '../space';\nvar DropdownButton = function DropdownButton(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var customizePrefixCls = props.prefixCls,\n _props$type = props.type,\n type = _props$type === void 0 ? 'default' : _props$type,\n danger = props.danger,\n disabled = props.disabled,\n loading = props.loading,\n onClick = props.onClick,\n htmlType = props.htmlType,\n children = props.children,\n className = props.className,\n menu = props.menu,\n arrow = props.arrow,\n autoFocus = props.autoFocus,\n overlay = props.overlay,\n trigger = props.trigger,\n align = props.align,\n visible = props.visible,\n open = props.open,\n onVisibleChange = props.onVisibleChange,\n onOpenChange = props.onOpenChange,\n placement = props.placement,\n getPopupContainer = props.getPopupContainer,\n href = props.href,\n _props$icon = props.icon,\n icon = _props$icon === void 0 ? /*#__PURE__*/React.createElement(EllipsisOutlined, null) : _props$icon,\n title = props.title,\n _props$buttonsRender = props.buttonsRender,\n buttonsRender = _props$buttonsRender === void 0 ? function (buttons) {\n return buttons;\n } : _props$buttonsRender,\n mouseEnterDelay = props.mouseEnterDelay,\n mouseLeaveDelay = props.mouseLeaveDelay,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n destroyPopupOnHide = props.destroyPopupOnHide,\n restProps = __rest(props, [\"prefixCls\", \"type\", \"danger\", \"disabled\", \"loading\", \"onClick\", \"htmlType\", \"children\", \"className\", \"menu\", \"arrow\", \"autoFocus\", \"overlay\", \"trigger\", \"align\", \"visible\", \"open\", \"onVisibleChange\", \"onOpenChange\", \"placement\", \"getPopupContainer\", \"href\", \"icon\", \"title\", \"buttonsRender\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayClassName\", \"overlayStyle\", \"destroyPopupOnHide\"]);\n var prefixCls = getPrefixCls('dropdown-button', customizePrefixCls);\n var dropdownProps = {\n menu: menu,\n arrow: arrow,\n autoFocus: autoFocus,\n align: align,\n disabled: disabled,\n trigger: disabled ? [] : trigger,\n onOpenChange: onOpenChange || onVisibleChange,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n overlayClassName: overlayClassName,\n overlayStyle: overlayStyle,\n destroyPopupOnHide: destroyPopupOnHide\n };\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var classes = classNames(prefixCls, compactItemClassnames, className);\n if ('overlay' in props) {\n dropdownProps.overlay = overlay;\n }\n if ('open' in props) {\n dropdownProps.open = open;\n } else if ('visible' in props) {\n dropdownProps.open = visible;\n }\n if ('placement' in props) {\n dropdownProps.placement = placement;\n } else {\n dropdownProps.placement = direction === 'rtl' ? 'bottomLeft' : 'bottomRight';\n }\n var leftButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n disabled: disabled,\n loading: loading,\n onClick: onClick,\n htmlType: htmlType,\n href: href,\n title: title\n }, children);\n var rightButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n icon: icon\n });\n var _buttonsRender = buttonsRender([leftButton, rightButton]),\n _buttonsRender2 = _slicedToArray(_buttonsRender, 2),\n leftButtonToRender = _buttonsRender2[0],\n rightButtonToRender = _buttonsRender2[1];\n return /*#__PURE__*/React.createElement(Space.Compact, _extends({\n className: classes,\n size: compactSize,\n block: true\n }, restProps), leftButtonToRender, /*#__PURE__*/React.createElement(Dropdown, _extends({}, dropdownProps), rightButtonToRender));\n};\nDropdownButton.__ANT_BUTTON = true;\nexport default DropdownButton;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcDropdown from 'rc-dropdown';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport Menu from '../menu';\nimport { ConfigContext } from '../config-provider';\nimport { OverrideProvider } from '../menu/OverrideContext';\nimport getPlacements from '../_util/placements';\nimport { cloneElement } from '../_util/reactNode';\nimport { tuple } from '../_util/type';\nimport warning from '../_util/warning';\nimport DropdownButton from './dropdown-button';\nimport { NoCompactStyle } from '../space/Compact';\nvar Placements = tuple('topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight', 'top', 'bottom');\nvar Dropdown = function Dropdown(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['onVisibleChange', 'onOpenChange']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Dropdown', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version, please use `\").concat(newName, \"` instead.\")) : void 0;\n });\n process.env.NODE_ENV !== \"production\" ? warning(!('overlay' in props), 'Dropdown', '`overlay` is deprecated. Please use `menu` instead.') : void 0;\n }\n var getTransitionName = function getTransitionName() {\n var rootPrefixCls = getPrefixCls();\n var _props$placement = props.placement,\n placement = _props$placement === void 0 ? '' : _props$placement,\n transitionName = props.transitionName;\n if (transitionName !== undefined) {\n return transitionName;\n }\n if (placement.includes('top')) {\n return \"\".concat(rootPrefixCls, \"-slide-down\");\n }\n return \"\".concat(rootPrefixCls, \"-slide-up\");\n };\n var getPlacement = function getPlacement() {\n var placement = props.placement;\n if (!placement) {\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n }\n if (placement.includes('Center')) {\n var newPlacement = placement.slice(0, placement.indexOf('Center'));\n process.env.NODE_ENV !== \"production\" ? warning(!placement.includes('Center'), 'Dropdown', \"You are using '\".concat(placement, \"' placement in Dropdown, which is deprecated. Try to use '\").concat(newPlacement, \"' instead.\")) : void 0;\n return newPlacement;\n }\n return placement;\n };\n var menu = props.menu,\n arrow = props.arrow,\n customizePrefixCls = props.prefixCls,\n children = props.children,\n trigger = props.trigger,\n disabled = props.disabled,\n dropdownRender = props.dropdownRender,\n getPopupContainer = props.getPopupContainer,\n overlayClassName = props.overlayClassName,\n visible = props.visible,\n open = props.open,\n onVisibleChange = props.onVisibleChange,\n onOpenChange = props.onOpenChange,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.15 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n _props$autoAdjustOver = props.autoAdjustOverflow,\n autoAdjustOverflow = _props$autoAdjustOver === void 0 ? true : _props$autoAdjustOver;\n var prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n var child = React.Children.only(children);\n var dropdownTrigger = cloneElement(child, {\n className: classNames(\"\".concat(prefixCls, \"-trigger\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), child.props.className),\n disabled: disabled\n });\n var triggerActions = disabled ? [] : trigger;\n var alignPoint;\n if (triggerActions && triggerActions.includes('contextMenu')) {\n alignPoint = true;\n }\n // =========================== Visible ============================\n var _useMergedState = useMergedState(false, {\n value: open !== undefined ? open : visible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpen = _useMergedState2[0],\n setOpen = _useMergedState2[1];\n var onInnerOpenChange = useEvent(function (nextOpen) {\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(nextOpen);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);\n setOpen(nextOpen);\n });\n // =========================== Overlay ============================\n var overlayClassNameCustomized = classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'));\n var builtinPlacements = getPlacements({\n arrowPointAtCenter: _typeof(arrow) === 'object' && arrow.pointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n var onMenuClick = React.useCallback(function () {\n setOpen(false);\n }, []);\n var renderOverlay = function renderOverlay() {\n // rc-dropdown already can process the function of overlay, but we have check logic here.\n // So we need render the element to check and pass back to rc-dropdown.\n var overlay = props.overlay;\n var overlayNode;\n if (menu === null || menu === void 0 ? void 0 : menu.items) {\n overlayNode = /*#__PURE__*/React.createElement(Menu, _extends({}, menu));\n } else if (typeof overlay === 'function') {\n overlayNode = overlay();\n } else {\n overlayNode = overlay;\n }\n if (dropdownRender) {\n overlayNode = dropdownRender(overlayNode);\n }\n overlayNode = React.Children.only(typeof overlayNode === 'string' ? /*#__PURE__*/React.createElement(\"span\", null, overlayNode) : overlayNode);\n return /*#__PURE__*/React.createElement(OverrideProvider, {\n prefixCls: \"\".concat(prefixCls, \"-menu\"),\n expandIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-menu-submenu-arrow\")\n }, /*#__PURE__*/React.createElement(RightOutlined, {\n className: \"\".concat(prefixCls, \"-menu-submenu-arrow-icon\")\n })),\n mode: \"vertical\",\n selectable: false,\n onClick: onMenuClick,\n validator: function validator(_ref3) {\n var mode = _ref3.mode;\n // Warning if use other mode\n process.env.NODE_ENV !== \"production\" ? warning(!mode || mode === 'vertical', 'Dropdown', \"mode=\\\"\".concat(mode, \"\\\" is not supported for Dropdown's Menu.\")) : void 0;\n }\n }, /*#__PURE__*/React.createElement(NoCompactStyle, null, overlayNode));\n };\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(RcDropdown, _extends({\n alignPoint: alignPoint\n }, props, {\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n visible: mergedOpen,\n builtinPlacements: builtinPlacements,\n arrow: !!arrow,\n overlayClassName: overlayClassNameCustomized,\n prefixCls: prefixCls,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n transitionName: getTransitionName(),\n trigger: triggerActions,\n overlay: renderOverlay,\n placement: getPlacement(),\n onVisibleChange: onInnerOpenChange\n }), dropdownTrigger);\n};\nDropdown.Button = DropdownButton;\nexport default Dropdown;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport Dropdown from '../dropdown/dropdown';\nvar BreadcrumbItem = function BreadcrumbItem(props) {\n var customizePrefixCls = props.prefixCls,\n _props$separator = props.separator,\n separator = _props$separator === void 0 ? '/' : _props$separator,\n children = props.children,\n menu = props.menu,\n overlay = props.overlay,\n dropdownProps = props.dropdownProps,\n restProps = __rest(props, [\"prefixCls\", \"separator\", \"children\", \"menu\", \"overlay\", \"dropdownProps\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('breadcrumb', customizePrefixCls);\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('overlay' in props), 'Breadcrumb.Item', '`overlay` is deprecated. Please use `menu` instead.') : void 0;\n }\n /** If overlay is have Wrap a Dropdown */\n var renderBreadcrumbNode = function renderBreadcrumbNode(breadcrumbItem) {\n if (menu || overlay) {\n var mergeDropDownProps = _extends({}, dropdownProps);\n if ('overlay' in props) {\n mergeDropDownProps.overlay = overlay;\n }\n return /*#__PURE__*/React.createElement(Dropdown, _extends({\n menu: menu,\n placement: \"bottom\"\n }, mergeDropDownProps), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-overlay-link\")\n }, breadcrumbItem, /*#__PURE__*/React.createElement(DownOutlined, null)));\n }\n return breadcrumbItem;\n };\n var link;\n if ('href' in restProps) {\n link = /*#__PURE__*/React.createElement(\"a\", _extends({\n className: \"\".concat(prefixCls, \"-link\")\n }, restProps), children);\n } else {\n link = /*#__PURE__*/React.createElement(\"span\", _extends({\n className: \"\".concat(prefixCls, \"-link\")\n }, restProps), children);\n }\n // wrap to dropDown\n link = renderBreadcrumbNode(link);\n if (children !== undefined && children !== null) {\n return /*#__PURE__*/React.createElement(\"li\", null, link, separator && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-separator\")\n }, separator));\n }\n return null;\n};\nBreadcrumbItem.__ANT_BREADCRUMB_ITEM = true;\nexport default BreadcrumbItem;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar BreadcrumbSeparator = function BreadcrumbSeparator(_ref) {\n var children = _ref.children;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('breadcrumb');\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-separator\")\n }, children || '/');\n};\nBreadcrumbSeparator.__ANT_BREADCRUMB_SEPARATOR = true;\nexport default BreadcrumbSeparator;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Menu from '../menu';\nimport { cloneElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport BreadcrumbItem from './BreadcrumbItem';\nimport BreadcrumbSeparator from './BreadcrumbSeparator';\nfunction getBreadcrumbName(route, params) {\n if (!route.breadcrumbName) {\n return null;\n }\n var paramsKeys = Object.keys(params).join('|');\n var name = route.breadcrumbName.replace(new RegExp(\":(\".concat(paramsKeys, \")\"), 'g'), function (replacement, key) {\n return params[key] || replacement;\n });\n return name;\n}\nfunction defaultItemRender(route, params, routes, paths) {\n var isLastItem = routes.indexOf(route) === routes.length - 1;\n var name = getBreadcrumbName(route, params);\n return isLastItem ? /*#__PURE__*/React.createElement(\"span\", null, name) : /*#__PURE__*/React.createElement(\"a\", {\n href: \"#/\".concat(paths.join('/'))\n }, name);\n}\nvar getPath = function getPath(path, params) {\n path = (path || '').replace(/^\\//, '');\n Object.keys(params).forEach(function (key) {\n path = path.replace(\":\".concat(key), params[key]);\n });\n return path;\n};\nvar addChildPath = function addChildPath(paths, childPath, params) {\n var originalPaths = _toConsumableArray(paths);\n var path = getPath(childPath || '', params);\n if (path) {\n originalPaths.push(path);\n }\n return originalPaths;\n};\nvar Breadcrumb = function Breadcrumb(_a) {\n var customizePrefixCls = _a.prefixCls,\n _a$separator = _a.separator,\n separator = _a$separator === void 0 ? '/' : _a$separator,\n style = _a.style,\n className = _a.className,\n routes = _a.routes,\n children = _a.children,\n _a$itemRender = _a.itemRender,\n itemRender = _a$itemRender === void 0 ? defaultItemRender : _a$itemRender,\n _a$params = _a.params,\n params = _a$params === void 0 ? {} : _a$params,\n restProps = __rest(_a, [\"prefixCls\", \"separator\", \"style\", \"className\", \"routes\", \"children\", \"itemRender\", \"params\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var crumbs;\n var prefixCls = getPrefixCls('breadcrumb', customizePrefixCls);\n if (routes && routes.length > 0) {\n // generated by route\n var paths = [];\n crumbs = routes.map(function (route) {\n var path = getPath(route.path, params);\n if (path) {\n paths.push(path);\n }\n // generated overlay by route.children\n var overlay;\n if (route.children && route.children.length) {\n overlay = /*#__PURE__*/React.createElement(Menu, {\n items: route.children.map(function (child) {\n return {\n key: child.path || child.breadcrumbName,\n label: itemRender(child, params, routes, addChildPath(paths, child.path, params))\n };\n })\n });\n }\n var itemProps = {\n separator: separator\n };\n if (overlay) {\n itemProps.overlay = overlay;\n }\n return /*#__PURE__*/React.createElement(BreadcrumbItem, _extends({}, itemProps, {\n key: path || route.breadcrumbName\n }), itemRender(route, params, routes, paths));\n });\n } else if (children) {\n crumbs = toArray(children).map(function (element, index) {\n if (!element) {\n return element;\n }\n process.env.NODE_ENV !== \"production\" ? warning(element.type && (element.type.__ANT_BREADCRUMB_ITEM === true || element.type.__ANT_BREADCRUMB_SEPARATOR === true), 'Breadcrumb', \"Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children\") : void 0;\n return cloneElement(element, {\n separator: separator,\n key: index\n });\n });\n }\n var breadcrumbClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"nav\", _extends({\n className: breadcrumbClassName,\n style: style\n }, restProps), /*#__PURE__*/React.createElement(\"ol\", null, crumbs));\n};\nBreadcrumb.Item = BreadcrumbItem;\nBreadcrumb.Separator = BreadcrumbSeparator;\nexport default Breadcrumb;","import Breadcrumb from './Breadcrumb';\nexport default Breadcrumb;","// This icon file is generated automatically.\nvar BarsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"bars\", \"theme\": \"outlined\" };\nexport default BarsOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport BarsOutlinedSvg from \"@ant-design/icons-svg/es/asn/BarsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar BarsOutlined = function BarsOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: BarsOutlinedSvg\n }));\n};\nBarsOutlined.displayName = 'BarsOutlined';\nexport default /*#__PURE__*/React.forwardRef(BarsOutlined);","var isNumeric = function isNumeric(value) {\n return !isNaN(parseFloat(value)) && isFinite(value);\n};\nexport default isNumeric;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport BarsOutlined from \"@ant-design/icons/es/icons/BarsOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport isNumeric from '../_util/isNumeric';\nimport { LayoutContext } from './layout';\nvar dimensionMaxMap = {\n xs: '479.98px',\n sm: '575.98px',\n md: '767.98px',\n lg: '991.98px',\n xl: '1199.98px',\n xxl: '1599.98px'\n};\nexport var SiderContext = /*#__PURE__*/React.createContext({});\nvar generateId = function () {\n var i = 0;\n return function () {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n i += 1;\n return \"\".concat(prefix).concat(i);\n };\n}();\nvar Sider = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n trigger = _a.trigger,\n children = _a.children,\n _a$defaultCollapsed = _a.defaultCollapsed,\n defaultCollapsed = _a$defaultCollapsed === void 0 ? false : _a$defaultCollapsed,\n _a$theme = _a.theme,\n theme = _a$theme === void 0 ? 'dark' : _a$theme,\n _a$style = _a.style,\n style = _a$style === void 0 ? {} : _a$style,\n _a$collapsible = _a.collapsible,\n collapsible = _a$collapsible === void 0 ? false : _a$collapsible,\n _a$reverseArrow = _a.reverseArrow,\n reverseArrow = _a$reverseArrow === void 0 ? false : _a$reverseArrow,\n _a$width = _a.width,\n width = _a$width === void 0 ? 200 : _a$width,\n _a$collapsedWidth = _a.collapsedWidth,\n collapsedWidth = _a$collapsedWidth === void 0 ? 80 : _a$collapsedWidth,\n zeroWidthTriggerStyle = _a.zeroWidthTriggerStyle,\n breakpoint = _a.breakpoint,\n onCollapse = _a.onCollapse,\n onBreakpoint = _a.onBreakpoint,\n props = __rest(_a, [\"prefixCls\", \"className\", \"trigger\", \"children\", \"defaultCollapsed\", \"theme\", \"style\", \"collapsible\", \"reverseArrow\", \"width\", \"collapsedWidth\", \"zeroWidthTriggerStyle\", \"breakpoint\", \"onCollapse\", \"onBreakpoint\"]);\n var _useContext = useContext(LayoutContext),\n siderHook = _useContext.siderHook;\n var _useState = useState('collapsed' in props ? props.collapsed : defaultCollapsed),\n _useState2 = _slicedToArray(_useState, 2),\n collapsed = _useState2[0],\n setCollapsed = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n below = _useState4[0],\n setBelow = _useState4[1];\n useEffect(function () {\n if ('collapsed' in props) {\n setCollapsed(props.collapsed);\n }\n }, [props.collapsed]);\n var handleSetCollapsed = function handleSetCollapsed(value, type) {\n if (!('collapsed' in props)) {\n setCollapsed(value);\n }\n onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(value, type);\n };\n // ========================= Responsive =========================\n var responsiveHandlerRef = useRef();\n responsiveHandlerRef.current = function (mql) {\n setBelow(mql.matches);\n onBreakpoint === null || onBreakpoint === void 0 ? void 0 : onBreakpoint(mql.matches);\n if (collapsed !== mql.matches) {\n handleSetCollapsed(mql.matches, 'responsive');\n }\n };\n useEffect(function () {\n function responsiveHandler(mql) {\n return responsiveHandlerRef.current(mql);\n }\n var mql;\n if (typeof window !== 'undefined') {\n var _window = window,\n matchMedia = _window.matchMedia;\n if (matchMedia && breakpoint && breakpoint in dimensionMaxMap) {\n mql = matchMedia(\"(max-width: \".concat(dimensionMaxMap[breakpoint], \")\"));\n try {\n mql.addEventListener('change', responsiveHandler);\n } catch (error) {\n mql.addListener(responsiveHandler);\n }\n responsiveHandler(mql);\n }\n }\n return function () {\n try {\n mql === null || mql === void 0 ? void 0 : mql.removeEventListener('change', responsiveHandler);\n } catch (error) {\n mql === null || mql === void 0 ? void 0 : mql.removeListener(responsiveHandler);\n }\n };\n }, [breakpoint]); // in order to accept dynamic 'breakpoint' property, we need to add 'breakpoint' into dependency array.\n useEffect(function () {\n var uniqueId = generateId('ant-sider-');\n siderHook.addSider(uniqueId);\n return function () {\n return siderHook.removeSider(uniqueId);\n };\n }, []);\n var toggle = function toggle() {\n handleSetCollapsed(!collapsed, 'clickTrigger');\n };\n var _useContext2 = useContext(ConfigContext),\n getPrefixCls = _useContext2.getPrefixCls;\n var renderSider = function renderSider() {\n var _classNames;\n var prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n var divProps = omit(props, ['collapsed']);\n var rawWidth = collapsed ? collapsedWidth : width;\n // use \"px\" as fallback unit for width\n var siderWidth = isNumeric(rawWidth) ? \"\".concat(rawWidth, \"px\") : String(rawWidth);\n // special trigger when collapsedWidth == 0\n var zeroWidthTrigger = parseFloat(String(collapsedWidth || 0)) === 0 ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: toggle,\n className: classNames(\"\".concat(prefixCls, \"-zero-width-trigger\"), \"\".concat(prefixCls, \"-zero-width-trigger-\").concat(reverseArrow ? 'right' : 'left')),\n style: zeroWidthTriggerStyle\n }, trigger || /*#__PURE__*/React.createElement(BarsOutlined, null)) : null;\n var iconObj = {\n expanded: reverseArrow ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null),\n collapsed: reverseArrow ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n };\n var status = collapsed ? 'collapsed' : 'expanded';\n var defaultTrigger = iconObj[status];\n var triggerDom = trigger !== null ? zeroWidthTrigger || /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-trigger\"),\n onClick: toggle,\n style: {\n width: siderWidth\n }\n }, trigger || defaultTrigger) : null;\n var divStyle = _extends(_extends({}, style), {\n flex: \"0 0 \".concat(siderWidth),\n maxWidth: siderWidth,\n minWidth: siderWidth,\n width: siderWidth\n });\n var siderCls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(theme), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-collapsed\"), !!collapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-trigger\"), collapsible && trigger !== null && !zeroWidthTrigger), _defineProperty(_classNames, \"\".concat(prefixCls, \"-below\"), !!below), _defineProperty(_classNames, \"\".concat(prefixCls, \"-zero-width\"), parseFloat(siderWidth) === 0), _classNames), className);\n return /*#__PURE__*/React.createElement(\"aside\", _extends({\n className: siderCls\n }, divProps, {\n style: divStyle,\n ref: ref\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-children\")\n }, children), collapsible || below && zeroWidthTrigger ? triggerDom : null);\n };\n var contextValue = React.useMemo(function () {\n return {\n siderCollapsed: collapsed\n };\n }, [collapsed]);\n return /*#__PURE__*/React.createElement(SiderContext.Provider, {\n value: contextValue\n }, renderSider());\n});\nif (process.env.NODE_ENV !== 'production') {\n Sider.displayName = 'Sider';\n}\nexport default Sider;","import InternalLayout, { Content, Footer, Header } from './layout';\nimport Sider from './Sider';\nvar Layout = InternalLayout;\nLayout.Header = Header;\nLayout.Footer = Footer;\nLayout.Content = Content;\nLayout.Sider = Sider;\nexport default Layout;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nexport var LayoutContext = /*#__PURE__*/React.createContext({\n siderHook: {\n addSider: function addSider() {\n return null;\n },\n removeSider: function removeSider() {\n return null;\n }\n }\n});\nfunction generator(_ref) {\n var suffixCls = _ref.suffixCls,\n tagName = _ref.tagName,\n displayName = _ref.displayName;\n return function (BasicComponent) {\n var Adapter = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var customizePrefixCls = props.prefixCls;\n var prefixCls = getPrefixCls(suffixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(BasicComponent, _extends({\n ref: ref,\n prefixCls: prefixCls,\n tagName: tagName\n }, props));\n });\n if (process.env.NODE_ENV !== 'production') {\n Adapter.displayName = displayName;\n }\n return Adapter;\n };\n}\nvar Basic = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n tagName = props.tagName,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"tagName\"]);\n var classString = classNames(prefixCls, className);\n return /*#__PURE__*/React.createElement(tagName, _extends(_extends({\n className: classString\n }, others), {\n ref: ref\n }), children);\n});\nvar BasicLayout = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var _React$useContext2 = React.useContext(ConfigContext),\n direction = _React$useContext2.direction;\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n siders = _React$useState2[0],\n setSiders = _React$useState2[1];\n var prefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n hasSider = props.hasSider,\n Tag = props.tagName,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"hasSider\", \"tagName\"]);\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-sider\"), typeof hasSider === 'boolean' ? hasSider : siders.length > 0), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n var contextValue = React.useMemo(function () {\n return {\n siderHook: {\n addSider: function addSider(id) {\n setSiders(function (prev) {\n return [].concat(_toConsumableArray(prev), [id]);\n });\n },\n removeSider: function removeSider(id) {\n setSiders(function (prev) {\n return prev.filter(function (currentId) {\n return currentId !== id;\n });\n });\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(LayoutContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Tag, _extends({\n ref: ref,\n className: classString\n }, others), children));\n});\nvar Layout = generator({\n suffixCls: 'layout',\n tagName: 'section',\n displayName: 'Layout'\n})(BasicLayout);\nvar Header = generator({\n suffixCls: 'layout-header',\n tagName: 'header',\n displayName: 'Header'\n})(Basic);\nvar Footer = generator({\n suffixCls: 'layout-footer',\n tagName: 'footer',\n displayName: 'Footer'\n})(Basic);\nvar Content = generator({\n suffixCls: 'layout-content',\n tagName: 'main',\n displayName: 'Content'\n})(Basic);\nexport { Header, Footer, Content };\nexport default Layout;","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom';\n// Let compiler not to search module usage\nvar fullClone = _objectSpread({}, ReactDOM);\nvar version = fullClone.version,\n reactRender = fullClone.render,\n unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\ntry {\n var mainVersion = Number((version || '').split('.')[0]);\n if (mainVersion >= 18) {\n createRoot = fullClone.createRoot;\n }\n} catch (e) {\n // Do nothing;\n}\nfunction toggleWarning(skip) {\n var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n }\n}\nvar MARK = '__rc_react_root__';\n\n// ========================== Render ==========================\n\nfunction modernRender(node, container) {\n toggleWarning(true);\n var root = container[MARK] || createRoot(container);\n toggleWarning(false);\n root.render(node);\n container[MARK] = root;\n}\nfunction legacyRender(node, container) {\n reactRender(node, container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _r(node, container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyRender(node, container);\n }\n}\nexport function render(node, container) {\n if (createRoot) {\n modernRender(node, container);\n return;\n }\n legacyRender(node, container);\n}\n\n// ========================= Unmount ==========================\nfunction modernUnmount(_x) {\n return _modernUnmount.apply(this, arguments);\n}\nfunction _modernUnmount() {\n _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", Promise.resolve().then(function () {\n var _container$MARK;\n (_container$MARK = container[MARK]) === null || _container$MARK === void 0 ? void 0 : _container$MARK.unmount();\n delete container[MARK];\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _modernUnmount.apply(this, arguments);\n}\nfunction legacyUnmount(container) {\n unmountComponentAtNode(container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _u(container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyUnmount(container);\n }\n}\nexport function unmount(_x2) {\n return _unmount.apply(this, arguments);\n}\nfunction _unmount() {\n _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(createRoot !== undefined)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\", modernUnmount(container));\n case 2:\n legacyUnmount(container);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _unmount.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nfunction isThenable(thing) {\n return !!(thing && !!thing.then);\n}\nvar ActionButton = function ActionButton(props) {\n var clickedRef = React.useRef(false);\n var ref = React.useRef(null);\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n loading = _useState2[0],\n setLoading = _useState2[1];\n var close = props.close;\n var onInternalClose = function onInternalClose() {\n close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n };\n React.useEffect(function () {\n var timeoutId = null;\n if (props.autoFocus) {\n timeoutId = setTimeout(function () {\n var _a;\n (_a = ref.current) === null || _a === void 0 ? void 0 : _a.focus();\n });\n }\n return function () {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, []);\n var handlePromiseOnOk = function handlePromiseOnOk(returnValueOfOnOk) {\n if (!isThenable(returnValueOfOnOk)) {\n return;\n }\n setLoading(true);\n returnValueOfOnOk.then(function () {\n setLoading(false, true);\n onInternalClose.apply(void 0, arguments);\n clickedRef.current = false;\n }, function (e) {\n // See: https://github.com/ant-design/ant-design/issues/6183\n setLoading(false, true);\n clickedRef.current = false;\n return Promise.reject(e);\n });\n };\n var onClick = function onClick(e) {\n var actionFn = props.actionFn;\n if (clickedRef.current) {\n return;\n }\n clickedRef.current = true;\n if (!actionFn) {\n onInternalClose();\n return;\n }\n var returnValueOfOnOk;\n if (props.emitEvent) {\n returnValueOfOnOk = actionFn(e);\n if (props.quitOnNullishReturnValue && !isThenable(returnValueOfOnOk)) {\n clickedRef.current = false;\n onInternalClose(e);\n return;\n }\n } else if (actionFn.length) {\n returnValueOfOnOk = actionFn(close);\n // https://github.com/ant-design/ant-design/issues/23358\n clickedRef.current = false;\n } else {\n returnValueOfOnOk = actionFn();\n if (!returnValueOfOnOk) {\n onInternalClose();\n return;\n }\n }\n handlePromiseOnOk(returnValueOfOnOk);\n };\n var type = props.type,\n children = props.children,\n prefixCls = props.prefixCls,\n buttonProps = props.buttonProps;\n return /*#__PURE__*/React.createElement(Button, _extends({}, convertLegacyProps(type), {\n onClick: onClick,\n loading: loading,\n prefixCls: prefixCls\n }, buttonProps, {\n ref: ref\n }), children);\n};\nexport default ActionButton;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;\n/* eslint-enable */","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable no-param-reassign */\n\nimport { isValidElement } from 'react';\nimport { isFragment, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(function (ref) {\n return ref;\n });\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render)) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render)) {\n return false;\n }\n return true;\n}\nexport function supportNodeRef(node) {\n if (! /*#__PURE__*/isValidElement(node)) {\n return false;\n }\n if (isFragment(node)) {\n return false;\n }\n return supportRef(node);\n}\n/* eslint-enable */","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n var _React$useState = React.useState(function () {\n if (!canUseDom()) {\n return null;\n }\n var defaultEle = document.createElement('div');\n if (process.env.NODE_ENV !== 'production' && debug) {\n defaultEle.setAttribute('data-debug', debug);\n }\n return defaultEle;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n ele = _React$useState2[0];\n\n // ========================== Order ==========================\n var appendedRef = React.useRef(false);\n var queueCreate = React.useContext(OrderContext);\n var _React$useState3 = React.useState(EMPTY_LIST),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n queue = _React$useState4[0],\n setQueue = _React$useState4[1];\n var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n setQueue(function (origin) {\n var newQueue = [appendFn].concat(_toConsumableArray(origin));\n return newQueue;\n });\n });\n\n // =========================== DOM ===========================\n function append() {\n if (!ele.parentElement) {\n document.body.appendChild(ele);\n }\n appendedRef.current = true;\n }\n function cleanup() {\n var _ele$parentElement;\n (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n appendedRef.current = false;\n }\n useLayoutEffect(function () {\n if (render) {\n if (queueCreate) {\n queueCreate(append);\n } else {\n append();\n }\n } else {\n cleanup();\n }\n return cleanup;\n }, [render]);\n useLayoutEffect(function () {\n if (queue.length) {\n queue.forEach(function (appendFn) {\n return appendFn();\n });\n setQueue(EMPTY_LIST);\n }\n }, [queue]);\n return [ele, mergedQueueCreate];\n}","import canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = findStyles(container).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option);\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","/* eslint-disable no-param-reassign */\n\nvar cached;\nexport default function getScrollBarSize(fresh) {\n if (typeof document === 'undefined') {\n return 0;\n }\n if (fresh || cached === undefined) {\n var inner = document.createElement('div');\n inner.style.width = '100%';\n inner.style.height = '200px';\n var outer = document.createElement('div');\n var outerStyle = outer.style;\n outerStyle.position = 'absolute';\n outerStyle.top = '0';\n outerStyle.left = '0';\n outerStyle.pointerEvents = 'none';\n outerStyle.visibility = 'hidden';\n outerStyle.width = '200px';\n outerStyle.height = '150px';\n outerStyle.overflow = 'hidden';\n outer.appendChild(inner);\n document.body.appendChild(outer);\n var widthContained = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var widthScroll = inner.offsetWidth;\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n document.body.removeChild(outer);\n cached = widthContained - widthScroll;\n }\n return cached;\n}\nfunction ensureSize(str) {\n var match = str.match(/^(.*)px$/);\n var value = Number(match === null || match === void 0 ? void 0 : match[1]);\n return Number.isNaN(value) ? getScrollBarSize() : value;\n}\nexport function getTargetScrollBarSize(target) {\n if (typeof document === 'undefined' || !target || !(target instanceof Element)) {\n return {\n width: 0,\n height: 0\n };\n }\n var _getComputedStyle = getComputedStyle(target, '::-webkit-scrollbar'),\n width = _getComputedStyle.width,\n height = _getComputedStyle.height;\n return {\n width: ensureSize(width),\n height: ensureSize(height)\n };\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n var mergedLock = !!lock;\n var _React$useState = React.useState(function () {\n uuid += 1;\n return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n useLayoutEffect(function () {\n if (mergedLock) {\n var scrollbarSize = getTargetScrollBarSize(document.body).width;\n var isOverflow = isBodyOverflowing();\n updateCSS(\"\\nhtml body {\\n overflow-y: hidden;\\n \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n } else {\n removeCSS(id);\n }\n return function () {\n removeCSS(id);\n };\n }, [mergedLock, id]);\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n if (typeof nextInline === 'boolean') {\n inline = nextInline;\n }\n return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n if (getContainer === false) {\n return false;\n }\n if (!canUseDom() || !getContainer) {\n return null;\n }\n if (typeof getContainer === 'string') {\n return document.querySelector(getContainer);\n }\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var open = props.open,\n autoLock = props.autoLock,\n getContainer = props.getContainer,\n debug = props.debug,\n _props$autoDestroy = props.autoDestroy,\n autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n children = props.children;\n var _React$useState = React.useState(open),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n shouldRender = _React$useState2[0],\n setShouldRender = _React$useState2[1];\n var mergedRender = shouldRender || open;\n\n // ========================= Warning =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n }\n\n // ====================== Should Render ======================\n React.useEffect(function () {\n if (autoDestroy || open) {\n setShouldRender(open);\n }\n }, [open, autoDestroy]);\n\n // ======================== Container ========================\n var _React$useState3 = React.useState(function () {\n return getPortalContainer(getContainer);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerContainer = _React$useState4[0],\n setInnerContainer = _React$useState4[1];\n React.useEffect(function () {\n var customizeContainer = getPortalContainer(getContainer);\n\n // Tell component that we check this in effect which is safe to be `null`\n setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n });\n var _useDom = useDom(mergedRender && !innerContainer, debug),\n _useDom2 = _slicedToArray(_useDom, 2),\n defaultContainer = _useDom2[0],\n queueCreate = _useDom2[1];\n var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n // ========================= Locker ==========================\n useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n // =========================== Ref ===========================\n var childRef = null;\n if (children && supportRef(children) && ref) {\n var _ref = children;\n childRef = _ref.ref;\n }\n var mergedRef = useComposeRef(childRef, ref);\n\n // ========================= Render ==========================\n // Do not render when nothing need render\n // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n return null;\n }\n\n // Render inline\n var renderInline = mergedContainer === false || inlineMock();\n var reffedChildren = children;\n if (ref) {\n reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n });\n }\n return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n value: queueCreate\n }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n Portal.displayName = 'Portal';\n}\nexport default Portal;","import Portal from \"./Portal\";\nimport { inlineMock } from \"./mock\";\nexport { inlineMock };\nexport default Portal;","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction getUseId() {\n // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`\n var fullClone = _objectSpread({}, React);\n return fullClone.useId;\n}\nvar uuid = 0;\n\n/** @private Note only worked in develop env. Not work in production. */\nexport function resetUuid() {\n if (process.env.NODE_ENV !== 'production') {\n uuid = 0;\n }\n}\nexport default function useId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState('ssr-id'),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n var useOriginId = getUseId();\n var reactNativeId = useOriginId === null || useOriginId === void 0 ? void 0 : useOriginId();\n React.useEffect(function () {\n if (!useOriginId) {\n var nextId = uuid;\n uuid += 1;\n setInnerId(\"rc_unique_\".concat(nextId));\n }\n }, []);\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n\n // Return react native id or inner id\n return reactNativeId || innerId;\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n charSet checked classID className colSpan cols content contentEditable contextMenu\\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n mediaGroup method min minLength multiple muted name noValidate nonce open\\n optimum pattern placeholder poster preload radioGroup readOnly rel required\\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n summary tabIndex target title type useMap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n\n/* eslint-enable max-len */\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\nfunction match(key, prefix) {\n return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\nexport default function pickAttrs(props) {\n var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var mergedConfig;\n if (ariaOnly === false) {\n mergedConfig = {\n aria: true,\n data: true,\n attr: true\n };\n } else if (ariaOnly === true) {\n mergedConfig = {\n aria: true\n };\n } else {\n mergedConfig = _objectSpread({}, ariaOnly);\n }\n var attrs = {};\n Object.keys(props).forEach(function (key) {\n if (\n // Aria\n mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) ||\n // Data\n mergedConfig.data && match(key, dataPrefix) ||\n // Attr\n mergedConfig.attr && propList.includes(key)) {\n attrs[key] = props[key];\n }\n });\n return attrs;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n visible = props.visible,\n maskProps = props.maskProps,\n motionName = props.motionName;\n return /*#__PURE__*/React.createElement(CSSMotion, {\n key: \"mask\",\n visible: visible,\n motionName: motionName,\n leavedClassName: \"\".concat(prefixCls, \"-mask-hidden\")\n }, function (_ref, ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n style: _objectSpread(_objectSpread({}, motionStyle), style),\n className: classNames(\"\".concat(prefixCls, \"-mask\"), motionClassName)\n }, maskProps));\n });\n}","// =============================== Motion ===============================\nexport function getMotionName(prefixCls, transitionName, animationName) {\n var motionName = transitionName;\n if (!motionName && animationName) {\n motionName = \"\".concat(prefixCls, \"-\").concat(animationName);\n }\n return motionName;\n}\n// =============================== Offset ===============================\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n ret = d.body[method];\n }\n }\n return ret;\n}\nexport function offset(el) {\n var rect = el.getBoundingClientRect();\n var pos = {\n left: rect.left,\n top: rect.top\n };\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScroll(w);\n pos.top += getScroll(w, true);\n return pos;\n}","import * as React from 'react';\nexport default /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, _ref2) {\n var shouldUpdate = _ref2.shouldUpdate;\n return !shouldUpdate;\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport MemoChildren from './MemoChildren';\nvar sentinelStyle = {\n width: 0,\n height: 0,\n overflow: 'hidden',\n outline: 'none'\n};\nvar Panel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n title = props.title,\n ariaId = props.ariaId,\n footer = props.footer,\n closable = props.closable,\n closeIcon = props.closeIcon,\n onClose = props.onClose,\n children = props.children,\n bodyStyle = props.bodyStyle,\n bodyProps = props.bodyProps,\n modalRender = props.modalRender,\n onMouseDown = props.onMouseDown,\n onMouseUp = props.onMouseUp,\n holderRef = props.holderRef,\n visible = props.visible,\n forceRender = props.forceRender,\n width = props.width,\n height = props.height;\n // ================================= Refs =================================\n var sentinelStartRef = useRef();\n var sentinelEndRef = useRef();\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _sentinelStartRef$cur;\n (_sentinelStartRef$cur = sentinelStartRef.current) === null || _sentinelStartRef$cur === void 0 ? void 0 : _sentinelStartRef$cur.focus();\n },\n changeActive: function changeActive(next) {\n var _document = document,\n activeElement = _document.activeElement;\n if (next && activeElement === sentinelEndRef.current) {\n sentinelStartRef.current.focus();\n } else if (!next && activeElement === sentinelStartRef.current) {\n sentinelEndRef.current.focus();\n }\n }\n };\n });\n // ================================ Style =================================\n var contentStyle = {};\n if (width !== undefined) {\n contentStyle.width = width;\n }\n if (height !== undefined) {\n contentStyle.height = height;\n }\n // ================================ Render ================================\n var footerNode;\n if (footer) {\n footerNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer);\n }\n var headerNode;\n if (title) {\n headerNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\"),\n id: ariaId\n }, title));\n }\n var closer;\n if (closable) {\n closer = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onClose,\n \"aria-label\": \"Close\",\n className: \"\".concat(prefixCls, \"-close\")\n }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }));\n }\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, closer, headerNode, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, bodyProps), children), footerNode);\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"dialog-element\",\n role: \"dialog\",\n \"aria-labelledby\": title ? ariaId : null,\n \"aria-modal\": \"true\",\n ref: holderRef,\n style: _objectSpread(_objectSpread({}, style), contentStyle),\n className: classNames(prefixCls, className),\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp\n }, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelStartRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\"\n }), /*#__PURE__*/React.createElement(MemoChildren, {\n shouldUpdate: visible || forceRender\n }, modalRender ? modalRender(content) : content), /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEndRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\"\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Panel.displayName = 'Panel';\n}\nexport default Panel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { offset } from '../../util';\nimport Panel from './Panel';\nvar Content = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n title = props.title,\n style = props.style,\n className = props.className,\n visible = props.visible,\n forceRender = props.forceRender,\n destroyOnClose = props.destroyOnClose,\n motionName = props.motionName,\n ariaId = props.ariaId,\n onVisibleChanged = props.onVisibleChanged,\n mousePosition = props.mousePosition;\n var dialogRef = useRef();\n // ============================= Style ==============================\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n transformOrigin = _React$useState2[0],\n setTransformOrigin = _React$useState2[1];\n var contentStyle = {};\n if (transformOrigin) {\n contentStyle.transformOrigin = transformOrigin;\n }\n function onPrepare() {\n var elementOffset = offset(dialogRef.current);\n setTransformOrigin(mousePosition ? \"\".concat(mousePosition.x - elementOffset.left, \"px \").concat(mousePosition.y - elementOffset.top, \"px\") : '');\n }\n // ============================= Render =============================\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n onVisibleChanged: onVisibleChanged,\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n forceRender: forceRender,\n motionName: motionName,\n removeOnLeave: destroyOnClose,\n ref: dialogRef\n }, function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(Panel, _extends({}, props, {\n ref: ref,\n title: title,\n ariaId: ariaId,\n prefixCls: prefixCls,\n holderRef: motionRef,\n style: _objectSpread(_objectSpread(_objectSpread({}, motionStyle), style), contentStyle),\n className: classNames(className, motionClassName)\n }));\n });\n});\nContent.displayName = 'Content';\nexport default Content;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Mask from './Mask';\nimport { getMotionName } from '../util';\nimport Content from './Content';\nexport default function Dialog(props) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dialog' : _props$prefixCls,\n zIndex = props.zIndex,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? false : _props$visible,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n _props$focusTriggerAf = props.focusTriggerAfterClose,\n focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,\n wrapStyle = props.wrapStyle,\n wrapClassName = props.wrapClassName,\n wrapProps = props.wrapProps,\n onClose = props.onClose,\n afterClose = props.afterClose,\n transitionName = props.transitionName,\n animation = props.animation,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? true : _props$closable,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n maskStyle = props.maskStyle,\n maskProps = props.maskProps,\n rootClassName = props.rootClassName;\n var lastOutSideActiveElementRef = useRef();\n var wrapperRef = useRef();\n var contentRef = useRef();\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n // ========================== Init ==========================\n var ariaId = useId();\n function saveLastOutSideActiveElementRef() {\n if (!contains(wrapperRef.current, document.activeElement)) {\n lastOutSideActiveElementRef.current = document.activeElement;\n }\n }\n function focusDialogContent() {\n if (!contains(wrapperRef.current, document.activeElement)) {\n var _contentRef$current;\n (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.focus();\n }\n }\n // ========================= Events =========================\n function onDialogVisibleChanged(newVisible) {\n // Try to focus\n if (newVisible) {\n focusDialogContent();\n } else {\n // Clean up scroll bar & focus back\n setAnimatedVisible(false);\n if (mask && lastOutSideActiveElementRef.current && focusTriggerAfterClose) {\n try {\n lastOutSideActiveElementRef.current.focus({\n preventScroll: true\n });\n } catch (e) {\n // Do nothing\n }\n lastOutSideActiveElementRef.current = null;\n }\n // Trigger afterClose only when change visible from true to false\n if (animatedVisible) {\n afterClose === null || afterClose === void 0 ? void 0 : afterClose();\n }\n }\n }\n function onInternalClose(e) {\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n }\n // >>> Content\n var contentClickRef = useRef(false);\n var contentTimeoutRef = useRef();\n // We need record content click incase content popup out of dialog\n var onContentMouseDown = function onContentMouseDown() {\n clearTimeout(contentTimeoutRef.current);\n contentClickRef.current = true;\n };\n var onContentMouseUp = function onContentMouseUp() {\n contentTimeoutRef.current = setTimeout(function () {\n contentClickRef.current = false;\n });\n };\n // >>> Wrapper\n // Close only when element not on dialog\n var onWrapperClick = null;\n if (maskClosable) {\n onWrapperClick = function onWrapperClick(e) {\n if (contentClickRef.current) {\n contentClickRef.current = false;\n } else if (wrapperRef.current === e.target) {\n onInternalClose(e);\n }\n };\n }\n function onWrapperKeyDown(e) {\n if (keyboard && e.keyCode === KeyCode.ESC) {\n e.stopPropagation();\n onInternalClose(e);\n return;\n }\n // keep focus inside dialog\n if (visible) {\n if (e.keyCode === KeyCode.TAB) {\n contentRef.current.changeActive(!e.shiftKey);\n }\n }\n }\n // ========================= Effect =========================\n useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n saveLastOutSideActiveElementRef();\n }\n }, [visible]);\n // Remove direct should also check the scroll bar update\n useEffect(function () {\n return function () {\n clearTimeout(contentTimeoutRef.current);\n };\n }, []);\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-root\"), rootClassName)\n }, pickAttrs(props, {\n data: true\n })), /*#__PURE__*/React.createElement(Mask, {\n prefixCls: prefixCls,\n visible: mask && visible,\n motionName: getMotionName(prefixCls, maskTransitionName, maskAnimation),\n style: _objectSpread({\n zIndex: zIndex\n }, maskStyle),\n maskProps: maskProps\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n tabIndex: -1,\n onKeyDown: onWrapperKeyDown,\n className: classNames(\"\".concat(prefixCls, \"-wrap\"), wrapClassName),\n ref: wrapperRef,\n onClick: onWrapperClick,\n style: _objectSpread(_objectSpread({\n zIndex: zIndex\n }, wrapStyle), {}, {\n display: !animatedVisible ? 'none' : null\n })\n }, wrapProps), /*#__PURE__*/React.createElement(Content, _extends({}, props, {\n onMouseDown: onContentMouseDown,\n onMouseUp: onContentMouseUp,\n ref: contentRef,\n closable: closable,\n ariaId: ariaId,\n prefixCls: prefixCls,\n visible: visible && animatedVisible,\n onClose: onInternalClose,\n onVisibleChanged: onDialogVisibleChanged,\n motionName: getMotionName(prefixCls, transitionName, animation)\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Portal from '@rc-component/portal';\nimport Dialog from './Dialog';\n// fix issue #10656\n/*\n * getContainer remarks\n * Custom container should not be return, because in the Portal component, it will remove the\n * return container element here, if the custom container is the only child of it's component,\n * like issue #10656, It will has a conflict with removeChild method in react-dom.\n * So here should add a child (div element) to custom container.\n * */\nvar DialogWrap = function DialogWrap(props) {\n var visible = props.visible,\n getContainer = props.getContainer,\n forceRender = props.forceRender,\n _props$destroyOnClose = props.destroyOnClose,\n destroyOnClose = _props$destroyOnClose === void 0 ? false : _props$destroyOnClose,\n _afterClose = props.afterClose;\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n React.useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n }\n }, [visible]);\n // // 渲染在当前 dom 里;\n // if (getContainer === false) {\n // return (\n // 2} // 不对 body 做任何操作。。\n // />\n // );\n // }\n // Destroy on close will remove wrapped div\n if (!forceRender && destroyOnClose && !animatedVisible) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Portal, {\n open: visible || forceRender || animatedVisible,\n autoDestroy: false,\n getContainer: getContainer,\n autoLock: visible || animatedVisible\n }, /*#__PURE__*/React.createElement(Dialog, _extends({}, props, {\n destroyOnClose: destroyOnClose,\n afterClose: function afterClose() {\n _afterClose === null || _afterClose === void 0 ? void 0 : _afterClose();\n setAnimatedVisible(false);\n }\n })));\n};\nDialogWrap.displayName = 'Dialog';\nexport default DialogWrap;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport Dialog from 'rc-dialog';\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nimport { ConfigContext } from '../config-provider';\nimport { NoFormStyle } from '../form/context';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { NoCompactStyle } from '../space/Compact';\nimport { getTransitionName } from '../_util/motion';\nimport { canUseDocElement } from '../_util/styleChecker';\nimport warning from '../_util/warning';\nimport { getConfirmLocale } from './locale';\nvar mousePosition;\n// ref: https://github.com/ant-design/ant-design/issues/15795\nvar getClickPosition = function getClickPosition(e) {\n mousePosition = {\n x: e.pageX,\n y: e.pageY\n };\n // 100ms 内发生过点击事件,则从点击位置动画展示\n // 否则直接 zoom 展示\n // 这样可以兼容非点击方式展开\n setTimeout(function () {\n mousePosition = null;\n }, 100);\n};\n// 只有点击事件支持从鼠标位置动画展开\nif (canUseDocElement()) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\nvar Modal = function Modal(props) {\n var _classNames;\n var _a;\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var handleCancel = function handleCancel(e) {\n var onCancel = props.onCancel;\n onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);\n };\n var handleOk = function handleOk(e) {\n var onOk = props.onOk;\n onOk === null || onOk === void 0 ? void 0 : onOk(e);\n };\n process.env.NODE_ENV !== \"production\" ? warning(!('visible' in props), 'Modal', \"`visible` will be removed in next major version, please use `open` instead.\") : void 0;\n var customizePrefixCls = props.prefixCls,\n footer = props.footer,\n visible = props.visible,\n _props$open = props.open,\n open = _props$open === void 0 ? false : _props$open,\n wrapClassName = props.wrapClassName,\n centered = props.centered,\n getContainer = props.getContainer,\n closeIcon = props.closeIcon,\n _props$focusTriggerAf = props.focusTriggerAfterClose,\n focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,\n _props$width = props.width,\n width = _props$width === void 0 ? 520 : _props$width,\n restProps = __rest(props, [\"prefixCls\", \"footer\", \"visible\", \"open\", \"wrapClassName\", \"centered\", \"getContainer\", \"closeIcon\", \"focusTriggerAfterClose\", \"width\"]);\n var prefixCls = getPrefixCls('modal', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var defaultFooter = /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\",\n defaultLocale: getConfirmLocale()\n }, function (contextLocale) {\n var okText = props.okText,\n _props$okType = props.okType,\n okType = _props$okType === void 0 ? 'primary' : _props$okType,\n cancelText = props.cancelText,\n _props$confirmLoading = props.confirmLoading,\n confirmLoading = _props$confirmLoading === void 0 ? false : _props$confirmLoading;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, _extends({\n onClick: handleCancel\n }, props.cancelButtonProps), cancelText || contextLocale.cancelText), /*#__PURE__*/React.createElement(Button, _extends({}, convertLegacyProps(okType), {\n loading: confirmLoading,\n onClick: handleOk\n }, props.okButtonProps), okText !== null && okText !== void 0 ? okText : contextLocale.okText));\n });\n var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\")\n }));\n var wrapClassNameExtended = classNames(wrapClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-centered\"), !!centered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrap-rtl\"), direction === 'rtl'), _classNames));\n return /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n status: true,\n override: true\n }, /*#__PURE__*/React.createElement(Dialog, _extends({\n width: width\n }, restProps, {\n getContainer: getContainer === undefined ? getContextPopupContainer : getContainer,\n prefixCls: prefixCls,\n wrapClassName: wrapClassNameExtended,\n footer: footer === undefined ? defaultFooter : footer,\n visible: open || visible,\n mousePosition: (_a = restProps.mousePosition) !== null && _a !== void 0 ? _a : mousePosition,\n onClose: handleCancel,\n closeIcon: closeIconToRender,\n focusTriggerAfterClose: focusTriggerAfterClose,\n transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName)\n }))));\n};\nexport default Modal;","import DialogWrap from './DialogWrap';\nimport Panel from './Dialog/Content/Panel';\nexport { Panel };\nexport default DialogWrap;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport ConfigProvider from '../config-provider';\nimport ActionButton from '../_util/ActionButton';\nimport { getTransitionName } from '../_util/motion';\nimport warning from '../_util/warning';\nimport Dialog from './Modal';\nvar ConfirmDialog = function ConfirmDialog(props) {\n var icon = props.icon,\n onCancel = props.onCancel,\n onOk = props.onOk,\n close = props.close,\n zIndex = props.zIndex,\n afterClose = props.afterClose,\n visible = props.visible,\n open = props.open,\n keyboard = props.keyboard,\n centered = props.centered,\n getContainer = props.getContainer,\n maskStyle = props.maskStyle,\n okText = props.okText,\n okButtonProps = props.okButtonProps,\n cancelText = props.cancelText,\n cancelButtonProps = props.cancelButtonProps,\n direction = props.direction,\n prefixCls = props.prefixCls,\n wrapClassName = props.wrapClassName,\n rootPrefixCls = props.rootPrefixCls,\n iconPrefixCls = props.iconPrefixCls,\n bodyStyle = props.bodyStyle,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? false : _props$closable,\n closeIcon = props.closeIcon,\n modalRender = props.modalRender,\n focusTriggerAfterClose = props.focusTriggerAfterClose;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Modal', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\")) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(visible === undefined, 'Modal', \"`visible` is deprecated, please use `open` instead.\") : void 0;\n }\n // 支持传入{ icon: null }来隐藏`Modal.confirm`默认的Icon\n var okType = props.okType || 'primary';\n var contentPrefixCls = \"\".concat(prefixCls, \"-confirm\");\n // 默认为 true,保持向下兼容\n var okCancel = 'okCancel' in props ? props.okCancel : true;\n var width = props.width || 416;\n var style = props.style || {};\n var mask = props.mask === undefined ? true : props.mask;\n // 默认为 false,保持旧版默认行为\n var maskClosable = props.maskClosable === undefined ? false : props.maskClosable;\n var autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';\n var classString = classNames(contentPrefixCls, \"\".concat(contentPrefixCls, \"-\").concat(props.type), _defineProperty({}, \"\".concat(contentPrefixCls, \"-rtl\"), direction === 'rtl'), props.className);\n var cancelButton = okCancel && /*#__PURE__*/React.createElement(ActionButton, {\n actionFn: onCancel,\n close: close,\n autoFocus: autoFocusButton === 'cancel',\n buttonProps: cancelButtonProps,\n prefixCls: \"\".concat(rootPrefixCls, \"-btn\")\n }, cancelText);\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n direction: direction\n }, /*#__PURE__*/React.createElement(Dialog, {\n prefixCls: prefixCls,\n className: classString,\n wrapClassName: classNames(_defineProperty({}, \"\".concat(contentPrefixCls, \"-centered\"), !!props.centered), wrapClassName),\n onCancel: function onCancel() {\n return close === null || close === void 0 ? void 0 : close({\n triggerCancel: true\n });\n },\n open: open || visible,\n title: \"\",\n footer: \"\",\n transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName),\n mask: mask,\n maskClosable: maskClosable,\n maskStyle: maskStyle,\n style: style,\n bodyStyle: bodyStyle,\n width: width,\n zIndex: zIndex,\n afterClose: afterClose,\n keyboard: keyboard,\n centered: centered,\n getContainer: getContainer,\n closable: closable,\n closeIcon: closeIcon,\n modalRender: modalRender,\n focusTriggerAfterClose: focusTriggerAfterClose\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-body-wrapper\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-body\")\n }, icon, props.title === undefined ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(contentPrefixCls, \"-title\")\n }, props.title), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-content\")\n }, props.content)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-btns\")\n }, cancelButton, /*#__PURE__*/React.createElement(ActionButton, {\n type: okType,\n actionFn: onOk,\n close: close,\n autoFocus: autoFocusButton === 'ok',\n buttonProps: okButtonProps,\n prefixCls: \"\".concat(rootPrefixCls, \"-btn\")\n }, okText)))));\n};\nexport default ConfirmDialog;","var destroyFns = [];\nexport default destroyFns;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport { render as reactRender, unmount as reactUnmount } from \"rc-util/es/React/render\";\nimport * as React from 'react';\nimport { globalConfig } from '../config-provider';\nimport warning from '../_util/warning';\nimport ConfirmDialog from './ConfirmDialog';\nimport destroyFns from './destroyFns';\nimport { getConfirmLocale } from './locale';\nvar defaultRootPrefixCls = '';\nfunction getRootPrefixCls() {\n return defaultRootPrefixCls;\n}\nexport default function confirm(config) {\n var container = document.createDocumentFragment();\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n var currentConfig = _extends(_extends({}, config), {\n close: close,\n open: true\n });\n var timeoutId;\n function destroy() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var triggerCancel = args.some(function (param) {\n return param && param.triggerCancel;\n });\n if (config.onCancel && triggerCancel) {\n config.onCancel.apply(config, [function () {}].concat(_toConsumableArray(args.slice(1))));\n }\n for (var i = 0; i < destroyFns.length; i++) {\n var fn = destroyFns[i];\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n if (fn === close) {\n destroyFns.splice(i, 1);\n break;\n }\n }\n reactUnmount(container);\n }\n function render(_a) {\n var okText = _a.okText,\n cancelText = _a.cancelText,\n customizePrefixCls = _a.prefixCls,\n props = __rest(_a, [\"okText\", \"cancelText\", \"prefixCls\"]);\n clearTimeout(timeoutId);\n /**\n * https://github.com/ant-design/ant-design/issues/23623\n *\n * Sync render blocks React event. Let's make this async.\n */\n timeoutId = setTimeout(function () {\n var runtimeLocale = getConfirmLocale();\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n // because Modal.config \b set rootPrefixCls, which is different from other components\n var rootPrefixCls = getPrefixCls(undefined, getRootPrefixCls());\n var prefixCls = customizePrefixCls || \"\".concat(rootPrefixCls, \"-modal\");\n var iconPrefixCls = getIconPrefixCls();\n reactRender( /*#__PURE__*/React.createElement(ConfirmDialog, _extends({}, props, {\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n okText: okText || (props.okCancel ? runtimeLocale.okText : runtimeLocale.justOkText),\n cancelText: cancelText || runtimeLocale.cancelText\n })), container);\n });\n }\n function close() {\n var _this = this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n currentConfig = _extends(_extends({}, currentConfig), {\n open: false,\n afterClose: function afterClose() {\n if (typeof config.afterClose === 'function') {\n config.afterClose();\n }\n destroy.apply(_this, args);\n }\n });\n // Legacy support\n if (currentConfig.visible) {\n delete currentConfig.visible;\n }\n render(currentConfig);\n }\n function update(configUpdate) {\n if (typeof configUpdate === 'function') {\n currentConfig = configUpdate(currentConfig);\n } else {\n currentConfig = _extends(_extends({}, currentConfig), configUpdate);\n }\n render(currentConfig);\n }\n render(currentConfig);\n destroyFns.push(close);\n return {\n destroy: close,\n update: update\n };\n}\nexport function withWarn(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(ExclamationCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'warning'\n });\n}\nexport function withInfo(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(InfoCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'info'\n });\n}\nexport function withSuccess(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(CheckCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'success'\n });\n}\nexport function withError(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(CloseCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'error'\n });\n}\nexport function withConfirm(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(ExclamationCircleOutlined, null),\n okCancel: true\n }, props), {\n type: 'confirm'\n });\n}\nexport function modalGlobalConfig(_ref) {\n var rootPrefixCls = _ref.rootPrefixCls;\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Modal', 'Modal.config is deprecated. Please use ConfigProvider.config instead.') : void 0;\n defaultRootPrefixCls = rootPrefixCls;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport LocaleReceiver from '../../locale-provider/LocaleReceiver';\nimport defaultLocale from '../../locale/default';\nimport ConfirmDialog from '../ConfirmDialog';\nvar HookModal = function HookModal(_ref, ref) {\n var afterClose = _ref.afterClose,\n config = _ref.config;\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n open = _React$useState2[0],\n setOpen = _React$useState2[1];\n var _React$useState3 = React.useState(config),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerConfig = _React$useState4[0],\n setInnerConfig = _React$useState4[1];\n var _React$useContext = React.useContext(ConfigContext),\n direction = _React$useContext.direction,\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('modal');\n var rootPrefixCls = getPrefixCls();\n var close = function close() {\n setOpen(false);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var triggerCancel = args.some(function (param) {\n return param && param.triggerCancel;\n });\n if (innerConfig.onCancel && triggerCancel) {\n innerConfig.onCancel.apply(innerConfig, [function () {}].concat(_toConsumableArray(args.slice(1))));\n }\n };\n React.useImperativeHandle(ref, function () {\n return {\n destroy: close,\n update: function update(newConfig) {\n setInnerConfig(function (originConfig) {\n return _extends(_extends({}, originConfig), newConfig);\n });\n }\n };\n });\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\",\n defaultLocale: defaultLocale.Modal\n }, function (contextLocale) {\n return /*#__PURE__*/React.createElement(ConfirmDialog, _extends({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls\n }, innerConfig, {\n close: close,\n open: open,\n afterClose: afterClose,\n okText: innerConfig.okText || (innerConfig.okCancel ? contextLocale.okText : contextLocale.justOkText),\n direction: direction,\n cancelText: innerConfig.cancelText || contextLocale.cancelText\n }));\n });\n};\nexport default /*#__PURE__*/React.forwardRef(HookModal);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport usePatchElement from '../../_util/hooks/usePatchElement';\nimport { withConfirm, withError, withInfo, withSuccess, withWarn } from '../confirm';\nimport HookModal from './HookModal';\nvar uuid = 0;\nvar ElementsHolder = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (_props, ref) {\n var _usePatchElement = usePatchElement(),\n _usePatchElement2 = _slicedToArray(_usePatchElement, 2),\n elements = _usePatchElement2[0],\n patchElement = _usePatchElement2[1];\n React.useImperativeHandle(ref, function () {\n return {\n patchElement: patchElement\n };\n }, []);\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/React.createElement(React.Fragment, null, elements);\n}));\nexport default function useModal() {\n var holderRef = React.useRef(null);\n // ========================== Effect ==========================\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n actionQueue = _React$useState2[0],\n setActionQueue = _React$useState2[1];\n React.useEffect(function () {\n if (actionQueue.length) {\n var cloneQueue = _toConsumableArray(actionQueue);\n cloneQueue.forEach(function (action) {\n action();\n });\n setActionQueue([]);\n }\n }, [actionQueue]);\n // =========================== Hook ===========================\n var getConfirmFunc = React.useCallback(function (withFunc) {\n return function hookConfirm(config) {\n var _a;\n uuid += 1;\n var modalRef = /*#__PURE__*/React.createRef();\n var closeFunc;\n var modal = /*#__PURE__*/React.createElement(HookModal, {\n key: \"modal-\".concat(uuid),\n config: withFunc(config),\n ref: modalRef,\n afterClose: function afterClose() {\n closeFunc === null || closeFunc === void 0 ? void 0 : closeFunc();\n }\n });\n closeFunc = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.patchElement(modal);\n return {\n destroy: function destroy() {\n function destroyAction() {\n var _a;\n (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n if (modalRef.current) {\n destroyAction();\n } else {\n setActionQueue(function (prev) {\n return [].concat(_toConsumableArray(prev), [destroyAction]);\n });\n }\n },\n update: function update(newConfig) {\n function updateAction() {\n var _a;\n (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.update(newConfig);\n }\n if (modalRef.current) {\n updateAction();\n } else {\n setActionQueue(function (prev) {\n return [].concat(_toConsumableArray(prev), [updateAction]);\n });\n }\n }\n };\n };\n }, []);\n var fns = React.useMemo(function () {\n return {\n info: getConfirmFunc(withInfo),\n success: getConfirmFunc(withSuccess),\n error: getConfirmFunc(withError),\n warning: getConfirmFunc(withWarn),\n confirm: getConfirmFunc(withConfirm)\n };\n }, []);\n // eslint-disable-next-line react/jsx-key\n return [fns, /*#__PURE__*/React.createElement(ElementsHolder, {\n ref: holderRef\n })];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function usePatchElement() {\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n elements = _React$useState2[0],\n setElements = _React$useState2[1];\n var patchElement = React.useCallback(function (element) {\n // append a new element to elements (and create a new ref)\n setElements(function (originElements) {\n return [].concat(_toConsumableArray(originElements), [element]);\n });\n // return a function that removes the new element out of elements (and create a new ref)\n // it works a little like useEffect\n return function () {\n setElements(function (originElements) {\n return originElements.filter(function (ele) {\n return ele !== element;\n });\n });\n };\n }, []);\n return [elements, patchElement];\n}","import confirm, { modalGlobalConfig, withConfirm, withError, withInfo, withSuccess, withWarn } from './confirm';\nimport destroyFns from './destroyFns';\nimport OriginModal from './Modal';\nimport useModal from './useModal';\nfunction modalWarn(props) {\n return confirm(withWarn(props));\n}\nvar Modal = OriginModal;\nModal.useModal = useModal;\nModal.info = function infoFn(props) {\n return confirm(withInfo(props));\n};\nModal.success = function successFn(props) {\n return confirm(withSuccess(props));\n};\nModal.error = function errorFn(props) {\n return confirm(withError(props));\n};\nModal.warning = modalWarn;\nModal.warn = modalWarn;\nModal.confirm = function confirmFn(props) {\n return confirm(withConfirm(props));\n};\nModal.destroyAll = function destroyAllFn() {\n while (destroyFns.length) {\n var close = destroyFns.pop();\n if (close) {\n close();\n }\n }\n};\nModal.config = modalGlobalConfig;\nexport default Modal;","export var getRenderPropValue = function getRenderPropValue(propValue) {\n if (!propValue) {\n return null;\n }\n if (typeof propValue === 'function') {\n return propValue();\n }\n return propValue;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport { getTransitionName } from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport Tooltip from '../tooltip';\nvar Overlay = function Overlay(_ref) {\n var title = _ref.title,\n content = _ref.content,\n prefixCls = _ref.prefixCls;\n return /*#__PURE__*/React.createElement(React.Fragment, null, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, getRenderPropValue(title)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner-content\")\n }, getRenderPropValue(content)));\n};\nvar Popover = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n title = props.title,\n content = props.content,\n _overlay = props._overlay,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'top' : _props$placement,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? 'hover' : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.1 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n _props$overlayStyle = props.overlayStyle,\n overlayStyle = _props$overlayStyle === void 0 ? {} : _props$overlayStyle,\n otherProps = __rest(props, [\"prefixCls\", \"title\", \"content\", \"_overlay\", \"placement\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('popover', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var mergedOverlay = React.useMemo(function () {\n if (_overlay) {\n return _overlay;\n }\n if (!title && !content) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Overlay, {\n prefixCls: prefixCls,\n title: title,\n content: content\n });\n }, [_overlay, title, content, prefixCls]);\n return /*#__PURE__*/React.createElement(Tooltip, _extends({\n placement: placement,\n trigger: trigger,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n overlayStyle: overlayStyle\n }, otherProps, {\n prefixCls: prefixCls,\n ref: ref,\n overlay: mergedOverlay,\n transitionName: getTransitionName(rootPrefixCls, 'zoom-big', otherProps.transitionName)\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Popover.displayName = 'Popover';\n}\nexport default Popover;","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;\n/* eslint-enable */","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable no-param-reassign */\n\nimport { isValidElement } from 'react';\nimport { isFragment, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(function (ref) {\n return ref;\n });\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render)) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render)) {\n return false;\n }\n return true;\n}\nexport function supportNodeRef(node) {\n if (! /*#__PURE__*/isValidElement(node)) {\n return false;\n }\n if (isFragment(node)) {\n return false;\n }\n return supportRef(node);\n}\n/* eslint-enable */","/**\n * BaseSelect provide some parsed data into context.\n * You can use this hooks to get them.\n */\n\nimport * as React from 'react';\nexport var BaseSelectContext = /*#__PURE__*/React.createContext(null);\nexport default function useBaseProps() {\n return React.useContext(BaseSelectContext);\n}","import * as React from 'react';\n\n/**\n * Locker return cached mark.\n * If set to `true`, will return `true` in a short time even if set `false`.\n * If set to `false` and then set to `true`, will change to `true`.\n * And after time duration, it will back to `null` automatically.\n */\nexport default function useLock() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 250;\n var lockRef = React.useRef(null);\n var timeoutRef = React.useRef(null);\n\n // Clean up\n React.useEffect(function () {\n return function () {\n window.clearTimeout(timeoutRef.current);\n };\n }, []);\n function doLock(locked) {\n if (locked || lockRef.current === null) {\n lockRef.current = locked;\n }\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(function () {\n lockRef.current = null;\n }, duration);\n }\n return [function () {\n return lockRef.current;\n }, doLock];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n charSet checked classID className colSpan cols content contentEditable contextMenu\\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n mediaGroup method min minLength multiple muted name noValidate nonce open\\n optimum pattern placeholder poster preload radioGroup readOnly rel required\\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n summary tabIndex target title type useMap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n\n/* eslint-enable max-len */\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\nfunction match(key, prefix) {\n return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\nexport default function pickAttrs(props) {\n var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var mergedConfig;\n if (ariaOnly === false) {\n mergedConfig = {\n aria: true,\n data: true,\n attr: true\n };\n } else if (ariaOnly === true) {\n mergedConfig = {\n aria: true\n };\n } else {\n mergedConfig = _objectSpread({}, ariaOnly);\n }\n var attrs = {};\n Object.keys(props).forEach(function (key) {\n if (\n // Aria\n mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) ||\n // Data\n mergedConfig.data && match(key, dataPrefix) ||\n // Attr\n mergedConfig.attr && propList.includes(key)) {\n attrs[key] = props[key];\n }\n });\n return attrs;\n}","import * as React from 'react';\nimport classNames from 'classnames';\nvar TransBtn = function TransBtn(_ref) {\n var className = _ref.className,\n customizeIcon = _ref.customizeIcon,\n customizeIconProps = _ref.customizeIconProps,\n _onMouseDown = _ref.onMouseDown,\n onClick = _ref.onClick,\n children = _ref.children;\n var icon;\n if (typeof customizeIcon === 'function') {\n icon = customizeIcon(customizeIconProps);\n } else {\n icon = customizeIcon;\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className,\n onMouseDown: function onMouseDown(event) {\n event.preventDefault();\n if (_onMouseDown) {\n _onMouseDown(event);\n }\n },\n style: {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n },\n unselectable: \"on\",\n onClick: onClick,\n \"aria-hidden\": true\n }, icon !== undefined ? icon : /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(className.split(/\\s+/).map(function (cls) {\n return \"\".concat(cls, \"-icon\");\n }))\n }, children));\n};\nexport default TransBtn;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { warning } from \"rc-util/es/warning\";\nvar Input = function Input(_ref, ref) {\n var _inputNode2, _inputNode2$props;\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n inputElement = _ref.inputElement,\n disabled = _ref.disabled,\n tabIndex = _ref.tabIndex,\n autoFocus = _ref.autoFocus,\n autoComplete = _ref.autoComplete,\n editable = _ref.editable,\n activeDescendantId = _ref.activeDescendantId,\n value = _ref.value,\n maxLength = _ref.maxLength,\n _onKeyDown = _ref.onKeyDown,\n _onMouseDown = _ref.onMouseDown,\n _onChange = _ref.onChange,\n onPaste = _ref.onPaste,\n _onCompositionStart = _ref.onCompositionStart,\n _onCompositionEnd = _ref.onCompositionEnd,\n open = _ref.open,\n attrs = _ref.attrs;\n var inputNode = inputElement || /*#__PURE__*/React.createElement(\"input\", null);\n var _inputNode = inputNode,\n originRef = _inputNode.ref,\n originProps = _inputNode.props;\n var onOriginKeyDown = originProps.onKeyDown,\n onOriginChange = originProps.onChange,\n onOriginMouseDown = originProps.onMouseDown,\n onOriginCompositionStart = originProps.onCompositionStart,\n onOriginCompositionEnd = originProps.onCompositionEnd,\n style = originProps.style;\n warning(!('maxLength' in inputNode.props), \"Passing 'maxLength' to input element directly may not work because input in BaseSelect is controlled.\");\n inputNode = /*#__PURE__*/React.cloneElement(inputNode, _objectSpread(_objectSpread(_objectSpread({\n type: 'search'\n }, originProps), {}, {\n // Override over origin props\n id: id,\n ref: composeRef(ref, originRef),\n disabled: disabled,\n tabIndex: tabIndex,\n autoComplete: autoComplete || 'off',\n autoFocus: autoFocus,\n className: classNames(\"\".concat(prefixCls, \"-selection-search-input\"), (_inputNode2 = inputNode) === null || _inputNode2 === void 0 ? void 0 : (_inputNode2$props = _inputNode2.props) === null || _inputNode2$props === void 0 ? void 0 : _inputNode2$props.className),\n role: 'combobox',\n 'aria-expanded': open,\n 'aria-haspopup': 'listbox',\n 'aria-owns': \"\".concat(id, \"_list\"),\n 'aria-autocomplete': 'list',\n 'aria-controls': \"\".concat(id, \"_list\"),\n 'aria-activedescendant': activeDescendantId\n }, attrs), {}, {\n value: editable ? value : '',\n maxLength: maxLength,\n readOnly: !editable,\n unselectable: !editable ? 'on' : null,\n style: _objectSpread(_objectSpread({}, style), {}, {\n opacity: editable ? null : 0\n }),\n onKeyDown: function onKeyDown(event) {\n _onKeyDown(event);\n if (onOriginKeyDown) {\n onOriginKeyDown(event);\n }\n },\n onMouseDown: function onMouseDown(event) {\n _onMouseDown(event);\n if (onOriginMouseDown) {\n onOriginMouseDown(event);\n }\n },\n onChange: function onChange(event) {\n _onChange(event);\n if (onOriginChange) {\n onOriginChange(event);\n }\n },\n onCompositionStart: function onCompositionStart(event) {\n _onCompositionStart(event);\n if (onOriginCompositionStart) {\n onOriginCompositionStart(event);\n }\n },\n onCompositionEnd: function onCompositionEnd(event) {\n _onCompositionEnd(event);\n if (onOriginCompositionEnd) {\n onOriginCompositionEnd(event);\n }\n },\n onPaste: onPaste\n }));\n return inputNode;\n};\nvar RefInput = /*#__PURE__*/React.forwardRef(Input);\nRefInput.displayName = 'Input';\nexport default RefInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n return value !== undefined ? [value] : [];\n}\nexport var isClient = typeof window !== 'undefined' && window.document && window.document.documentElement;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && isClient;\nexport function hasValue(value) {\n return value !== undefined && value !== null;\n}\nfunction isTitleType(title) {\n return ['string', 'number'].includes(_typeof(title));\n}\nexport function getTitle(item) {\n var title = undefined;\n if (item) {\n if (isTitleType(item.title)) {\n title = item.title.toString();\n } else if (isTitleType(item.label)) {\n title = item.label.toString();\n }\n }\n return title;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Overflow from 'rc-overflow';\nimport TransBtn from \"../TransBtn\";\nimport Input from \"./Input\";\nimport useLayoutEffect from \"../hooks/useLayoutEffect\";\nimport { getTitle } from \"../utils/commonUtil\";\nfunction itemKey(value) {\n var _value$key;\n return (_value$key = value.key) !== null && _value$key !== void 0 ? _value$key : value.value;\n}\nvar onPreventMouseDown = function onPreventMouseDown(event) {\n event.preventDefault();\n event.stopPropagation();\n};\nvar SelectSelector = function SelectSelector(props) {\n var id = props.id,\n prefixCls = props.prefixCls,\n values = props.values,\n open = props.open,\n searchValue = props.searchValue,\n autoClearSearchValue = props.autoClearSearchValue,\n inputRef = props.inputRef,\n placeholder = props.placeholder,\n disabled = props.disabled,\n mode = props.mode,\n showSearch = props.showSearch,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n activeDescendantId = props.activeDescendantId,\n tabIndex = props.tabIndex,\n removeIcon = props.removeIcon,\n maxTagCount = props.maxTagCount,\n maxTagTextLength = props.maxTagTextLength,\n _props$maxTagPlacehol = props.maxTagPlaceholder,\n maxTagPlaceholder = _props$maxTagPlacehol === void 0 ? function (omittedValues) {\n return \"+ \".concat(omittedValues.length, \" ...\");\n } : _props$maxTagPlacehol,\n tagRender = props.tagRender,\n onToggleOpen = props.onToggleOpen,\n onRemove = props.onRemove,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd;\n var measureRef = React.useRef(null);\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n inputWidth = _useState2[0],\n setInputWidth = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n focused = _useState4[0],\n setFocused = _useState4[1];\n var selectionPrefixCls = \"\".concat(prefixCls, \"-selection\");\n\n // ===================== Search ======================\n var inputValue = open || mode === \"multiple\" && autoClearSearchValue === false || mode === 'tags' ? searchValue : '';\n var inputEditable = mode === 'tags' || mode === \"multiple\" && autoClearSearchValue === false || showSearch && (open || focused);\n\n // We measure width and set to the input immediately\n useLayoutEffect(function () {\n setInputWidth(measureRef.current.scrollWidth);\n }, [inputValue]);\n\n // ===================== Render ======================\n // >>> Render Selector Node. Includes Item & Rest\n function defaultRenderSelector(item, content, itemDisabled, closable, onClose) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(selectionPrefixCls, \"-item\"), _defineProperty({}, \"\".concat(selectionPrefixCls, \"-item-disabled\"), itemDisabled)),\n title: getTitle(item)\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-item-content\")\n }, content), closable && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(selectionPrefixCls, \"-item-remove\"),\n onMouseDown: onPreventMouseDown,\n onClick: onClose,\n customizeIcon: removeIcon\n }, \"\\xD7\"));\n }\n function customizeRenderSelector(value, content, itemDisabled, closable, onClose) {\n var onMouseDown = function onMouseDown(e) {\n onPreventMouseDown(e);\n onToggleOpen(!open);\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: onMouseDown\n }, tagRender({\n label: content,\n value: value,\n disabled: itemDisabled,\n closable: closable,\n onClose: onClose\n }));\n }\n function renderItem(valueItem) {\n var itemDisabled = valueItem.disabled,\n label = valueItem.label,\n value = valueItem.value;\n var closable = !disabled && !itemDisabled;\n var displayLabel = label;\n if (typeof maxTagTextLength === 'number') {\n if (typeof label === 'string' || typeof label === 'number') {\n var strLabel = String(displayLabel);\n if (strLabel.length > maxTagTextLength) {\n displayLabel = \"\".concat(strLabel.slice(0, maxTagTextLength), \"...\");\n }\n }\n }\n var onClose = function onClose(event) {\n if (event) event.stopPropagation();\n onRemove(valueItem);\n };\n return typeof tagRender === 'function' ? customizeRenderSelector(value, displayLabel, itemDisabled, closable, onClose) : defaultRenderSelector(valueItem, displayLabel, itemDisabled, closable, onClose);\n }\n function renderRest(omittedValues) {\n var content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n return defaultRenderSelector({\n title: content\n }, content, false);\n }\n\n // >>> Input Node\n var inputNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(selectionPrefixCls, \"-search\"),\n style: {\n width: inputWidth\n },\n onFocus: function onFocus() {\n setFocused(true);\n },\n onBlur: function onBlur() {\n setFocused(false);\n }\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n open: open,\n prefixCls: prefixCls,\n id: id,\n inputElement: null,\n disabled: disabled,\n autoFocus: autoFocus,\n autoComplete: autoComplete,\n editable: inputEditable,\n activeDescendantId: activeDescendantId,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: onInputChange,\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true)\n }), /*#__PURE__*/React.createElement(\"span\", {\n ref: measureRef,\n className: \"\".concat(selectionPrefixCls, \"-search-mirror\"),\n \"aria-hidden\": true\n }, inputValue, \"\\xA0\"));\n\n // >>> Selections\n var selectionNode = /*#__PURE__*/React.createElement(Overflow, {\n prefixCls: \"\".concat(selectionPrefixCls, \"-overflow\"),\n data: values,\n renderItem: renderItem,\n renderRest: renderRest,\n suffix: inputNode,\n itemKey: itemKey,\n maxCount: maxTagCount\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, selectionNode, !values.length && !inputValue && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-placeholder\")\n }, placeholder));\n};\nexport default SelectSelector;","/* eslint-disable react-hooks/rules-of-hooks */\nimport * as React from 'react';\nimport { isBrowserClient } from \"../utils/commonUtil\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nexport default function useLayoutEffect(effect, deps) {\n // Never happen in test env\n if (isBrowserClient) {\n /* istanbul ignore next */\n React.useLayoutEffect(effect, deps);\n } else {\n React.useEffect(effect, deps);\n }\n}\n/* eslint-enable */","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Input from \"./Input\";\nimport { getTitle } from \"../utils/commonUtil\";\nvar SingleSelector = function SingleSelector(props) {\n var inputElement = props.inputElement,\n prefixCls = props.prefixCls,\n id = props.id,\n inputRef = props.inputRef,\n disabled = props.disabled,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n activeDescendantId = props.activeDescendantId,\n mode = props.mode,\n open = props.open,\n values = props.values,\n placeholder = props.placeholder,\n tabIndex = props.tabIndex,\n showSearch = props.showSearch,\n searchValue = props.searchValue,\n activeValue = props.activeValue,\n maxLength = props.maxLength,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n inputChanged = _React$useState2[0],\n setInputChanged = _React$useState2[1];\n var combobox = mode === 'combobox';\n var inputEditable = combobox || showSearch;\n var item = values[0];\n var inputValue = searchValue || '';\n if (combobox && activeValue && !inputChanged) {\n inputValue = activeValue;\n }\n React.useEffect(function () {\n if (combobox) {\n setInputChanged(false);\n }\n }, [combobox, activeValue]);\n\n // Not show text when closed expect combobox mode\n var hasTextInput = mode !== 'combobox' && !open && !showSearch ? false : !!inputValue;\n\n // Get title\n var title = getTitle(item);\n var renderPlaceholder = function renderPlaceholder() {\n if (item) {\n return null;\n }\n var hiddenStyle = hasTextInput ? {\n visibility: 'hidden'\n } : undefined;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-placeholder\"),\n style: hiddenStyle\n }, placeholder);\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-search\")\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n prefixCls: prefixCls,\n id: id,\n open: open,\n inputElement: inputElement,\n disabled: disabled,\n autoFocus: autoFocus,\n autoComplete: autoComplete,\n editable: inputEditable,\n activeDescendantId: activeDescendantId,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: function onChange(e) {\n setInputChanged(true);\n onInputChange(e);\n },\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true),\n maxLength: combobox ? maxLength : undefined\n })), !combobox && item ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-item\"),\n title: title\n // 当 Select 已经选中选项时,还需 selection 隐藏但留在原地占位\n // https://github.com/ant-design/ant-design/issues/27688\n // https://github.com/ant-design/ant-design/issues/41530\n ,\n style: hasTextInput ? {\n visibility: 'hidden'\n } : undefined\n }, item.label) : null, renderPlaceholder());\n};\nexport default SingleSelector;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Cursor rule:\n * 1. Only `showSearch` enabled\n * 2. Only `open` is `true`\n * 3. When typing, set `open` to `true` which hit rule of 2\n *\n * Accessibility:\n * - https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html\n */\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport MultipleSelector from \"./MultipleSelector\";\nimport SingleSelector from \"./SingleSelector\";\nimport useLock from \"../hooks/useLock\";\nimport { isValidateOpenKey } from \"../utils/keyUtil\";\nvar Selector = function Selector(props, ref) {\n var inputRef = useRef(null);\n var compositionStatusRef = useRef(false);\n var prefixCls = props.prefixCls,\n open = props.open,\n mode = props.mode,\n showSearch = props.showSearch,\n tokenWithEnter = props.tokenWithEnter,\n autoClearSearchValue = props.autoClearSearchValue,\n onSearch = props.onSearch,\n onSearchSubmit = props.onSearchSubmit,\n onToggleOpen = props.onToggleOpen,\n onInputKeyDown = props.onInputKeyDown,\n domRef = props.domRef;\n\n // ======================= Ref =======================\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n inputRef.current.focus();\n },\n blur: function blur() {\n inputRef.current.blur();\n }\n };\n });\n\n // ====================== Input ======================\n var _useLock = useLock(0),\n _useLock2 = _slicedToArray(_useLock, 2),\n getInputMouseDown = _useLock2[0],\n setInputMouseDown = _useLock2[1];\n var onInternalInputKeyDown = function onInternalInputKeyDown(event) {\n var which = event.which;\n if (which === KeyCode.UP || which === KeyCode.DOWN) {\n event.preventDefault();\n }\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n if (which === KeyCode.ENTER && mode === 'tags' && !compositionStatusRef.current && !open) {\n // When menu isn't open, OptionList won't trigger a value change\n // So when enter is pressed, the tag's input value should be emitted here to let selector know\n onSearchSubmit === null || onSearchSubmit === void 0 ? void 0 : onSearchSubmit(event.target.value);\n }\n if (isValidateOpenKey(which)) {\n onToggleOpen(true);\n }\n };\n\n /**\n * We can not use `findDOMNode` sine it will get warning,\n * have to use timer to check if is input element.\n */\n var onInternalInputMouseDown = function onInternalInputMouseDown() {\n setInputMouseDown(true);\n };\n\n // When paste come, ignore next onChange\n var pastedTextRef = useRef(null);\n var triggerOnSearch = function triggerOnSearch(value) {\n if (onSearch(value, true, compositionStatusRef.current) !== false) {\n onToggleOpen(true);\n }\n };\n var onInputCompositionStart = function onInputCompositionStart() {\n compositionStatusRef.current = true;\n };\n var onInputCompositionEnd = function onInputCompositionEnd(e) {\n compositionStatusRef.current = false;\n\n // Trigger search again to support `tokenSeparators` with typewriting\n if (mode !== 'combobox') {\n triggerOnSearch(e.target.value);\n }\n };\n var onInputChange = function onInputChange(event) {\n var value = event.target.value;\n\n // Pasted text should replace back to origin content\n if (tokenWithEnter && pastedTextRef.current && /[\\r\\n]/.test(pastedTextRef.current)) {\n // CRLF will be treated as a single space for input element\n var replacedText = pastedTextRef.current.replace(/[\\r\\n]+$/, '').replace(/\\r\\n/g, ' ').replace(/[\\r\\n]/g, ' ');\n value = value.replace(replacedText, pastedTextRef.current);\n }\n pastedTextRef.current = null;\n triggerOnSearch(value);\n };\n var onInputPaste = function onInputPaste(e) {\n var clipboardData = e.clipboardData;\n var value = clipboardData.getData('text');\n pastedTextRef.current = value;\n };\n var onClick = function onClick(_ref) {\n var target = _ref.target;\n if (target !== inputRef.current) {\n // Should focus input if click the selector\n var isIE = document.body.style.msTouchAction !== undefined;\n if (isIE) {\n setTimeout(function () {\n inputRef.current.focus();\n });\n } else {\n inputRef.current.focus();\n }\n }\n };\n var onMouseDown = function onMouseDown(event) {\n var inputMouseDown = getInputMouseDown();\n\n // when mode is combobox, don't prevent default behavior\n // https://github.com/ant-design/ant-design/issues/37320\n if (event.target !== inputRef.current && !inputMouseDown && mode !== 'combobox') {\n event.preventDefault();\n }\n if (mode !== 'combobox' && (!showSearch || !inputMouseDown) || !open) {\n if (open && autoClearSearchValue !== false) {\n onSearch('', true, false);\n }\n onToggleOpen();\n }\n };\n\n // ================= Inner Selector ==================\n var sharedProps = {\n inputRef: inputRef,\n onInputKeyDown: onInternalInputKeyDown,\n onInputMouseDown: onInternalInputMouseDown,\n onInputChange: onInputChange,\n onInputPaste: onInputPaste,\n onInputCompositionStart: onInputCompositionStart,\n onInputCompositionEnd: onInputCompositionEnd\n };\n var selectNode = mode === 'multiple' || mode === 'tags' ? /*#__PURE__*/React.createElement(MultipleSelector, _extends({}, props, sharedProps)) : /*#__PURE__*/React.createElement(SingleSelector, _extends({}, props, sharedProps));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domRef,\n className: \"\".concat(prefixCls, \"-selector\"),\n onClick: onClick,\n onMouseDown: onMouseDown\n }, selectNode);\n};\nvar ForwardSelector = /*#__PURE__*/React.forwardRef(Selector);\nForwardSelector.displayName = 'Selector';\nexport default ForwardSelector;","import KeyCode from \"rc-util/es/KeyCode\";\n\n/** keyCode Judgment function */\nexport function isValidateOpenKey(currentKeyCode) {\n return ![\n // System function button\n KeyCode.ESC, KeyCode.SHIFT, KeyCode.BACKSPACE, KeyCode.TAB, KeyCode.WIN_KEY, KeyCode.ALT, KeyCode.META, KeyCode.WIN_KEY_RIGHT, KeyCode.CTRL, KeyCode.SEMICOLON, KeyCode.EQUALS, KeyCode.CAPS_LOCK, KeyCode.CONTEXT_MENU,\n // F1-F12\n KeyCode.F1, KeyCode.F2, KeyCode.F3, KeyCode.F4, KeyCode.F5, KeyCode.F6, KeyCode.F7, KeyCode.F8, KeyCode.F9, KeyCode.F10, KeyCode.F11, KeyCode.F12].includes(currentKeyCode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"disabled\", \"visible\", \"children\", \"popupElement\", \"containerWidth\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"direction\", \"placement\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"getPopupContainer\", \"empty\", \"getTriggerDOMNode\", \"onPopupVisibleChange\", \"onPopupMouseEnter\"];\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nvar getBuiltInPlacements = function getBuiltInPlacements(dropdownMatchSelectWidth) {\n // Enable horizontal overflow auto-adjustment when a custom dropdown width is provided\n var adjustX = dropdownMatchSelectWidth === true ? 0 : 1;\n return {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n }\n };\n};\nvar SelectTrigger = function SelectTrigger(props, ref) {\n var prefixCls = props.prefixCls,\n disabled = props.disabled,\n visible = props.visible,\n children = props.children,\n popupElement = props.popupElement,\n containerWidth = props.containerWidth,\n animation = props.animation,\n transitionName = props.transitionName,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'ltr' : _props$direction,\n placement = props.placement,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n getPopupContainer = props.getPopupContainer,\n empty = props.empty,\n getTriggerDOMNode = props.getTriggerDOMNode,\n onPopupVisibleChange = props.onPopupVisibleChange,\n onPopupMouseEnter = props.onPopupMouseEnter,\n restProps = _objectWithoutProperties(props, _excluded);\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var popupNode = popupElement;\n if (dropdownRender) {\n popupNode = dropdownRender(popupElement);\n }\n var builtInPlacements = React.useMemo(function () {\n return getBuiltInPlacements(dropdownMatchSelectWidth);\n }, [dropdownMatchSelectWidth]);\n\n // ===================== Motion ======================\n var mergedTransitionName = animation ? \"\".concat(dropdownPrefixCls, \"-\").concat(animation) : transitionName;\n\n // ======================= Ref =======================\n var popupRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n getPopupElement: function getPopupElement() {\n return popupRef.current;\n }\n };\n });\n var popupStyle = _objectSpread({\n minWidth: containerWidth\n }, dropdownStyle);\n if (typeof dropdownMatchSelectWidth === 'number') {\n popupStyle.width = dropdownMatchSelectWidth;\n } else if (dropdownMatchSelectWidth) {\n popupStyle.width = containerWidth;\n }\n return /*#__PURE__*/React.createElement(Trigger, _extends({}, restProps, {\n showAction: onPopupVisibleChange ? ['click'] : [],\n hideAction: onPopupVisibleChange ? ['click'] : [],\n popupPlacement: placement || (direction === 'rtl' ? 'bottomRight' : 'bottomLeft'),\n builtinPlacements: builtInPlacements,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: mergedTransitionName,\n popup: /*#__PURE__*/React.createElement(\"div\", {\n ref: popupRef,\n onMouseEnter: onPopupMouseEnter\n }, popupNode),\n popupAlign: dropdownAlign,\n popupVisible: visible,\n getPopupContainer: getPopupContainer,\n popupClassName: classNames(dropdownClassName, _defineProperty({}, \"\".concat(dropdownPrefixCls, \"-empty\"), empty)),\n popupStyle: popupStyle,\n getTriggerDOMNode: getTriggerDOMNode,\n onPopupVisibleChange: onPopupVisibleChange\n }), children);\n};\nvar RefSelectTrigger = /*#__PURE__*/React.forwardRef(SelectTrigger);\nRefSelectTrigger.displayName = 'SelectTrigger';\nexport default RefSelectTrigger;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nfunction getKey(data, index) {\n var key = data.key;\n var value;\n if ('value' in data) {\n value = data.value;\n }\n if (key !== null && key !== undefined) {\n return key;\n }\n if (value !== undefined) {\n return value;\n }\n return \"rc-index-key-\".concat(index);\n}\nexport function fillFieldNames(fieldNames, childrenAsData) {\n var _ref = fieldNames || {},\n label = _ref.label,\n value = _ref.value,\n options = _ref.options;\n return {\n label: label || (childrenAsData ? 'children' : 'label'),\n value: value || 'value',\n options: options || 'options'\n };\n}\n\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\nexport function flattenOptions(options) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n fieldNames = _ref2.fieldNames,\n childrenAsData = _ref2.childrenAsData;\n var flattenList = [];\n var _fillFieldNames = fillFieldNames(fieldNames, false),\n fieldLabel = _fillFieldNames.label,\n fieldValue = _fillFieldNames.value,\n fieldOptions = _fillFieldNames.options;\n function dig(list, isGroupOption) {\n list.forEach(function (data) {\n var label = data[fieldLabel];\n if (isGroupOption || !(fieldOptions in data)) {\n var value = data[fieldValue];\n\n // Option\n flattenList.push({\n key: getKey(data, flattenList.length),\n groupOption: isGroupOption,\n data: data,\n label: label,\n value: value\n });\n } else {\n var grpLabel = label;\n if (grpLabel === undefined && childrenAsData) {\n grpLabel = data.label;\n }\n\n // Option Group\n flattenList.push({\n key: getKey(data, flattenList.length),\n group: true,\n data: data,\n label: grpLabel\n });\n dig(data[fieldOptions], true);\n }\n });\n }\n dig(options, false);\n return flattenList;\n}\n\n/**\n * Inject `props` into `option` for legacy usage\n */\nexport function injectPropsWithOption(option) {\n var newOption = _objectSpread({}, option);\n if (!('props' in newOption)) {\n Object.defineProperty(newOption, 'props', {\n get: function get() {\n warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n return newOption;\n }\n });\n }\n return newOption;\n}\nexport function getSeparatedContent(text, tokens) {\n if (!tokens || !tokens.length) {\n return null;\n }\n var match = false;\n function separate(str, _ref3) {\n var _ref4 = _toArray(_ref3),\n token = _ref4[0],\n restTokens = _ref4.slice(1);\n if (!token) {\n return [str];\n }\n var list = str.split(token);\n match = match || list.length > 1;\n return list.reduce(function (prevList, unitStr) {\n return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n }, []).filter(function (unit) {\n return unit;\n });\n }\n var list = separate(text, tokens);\n return match ? list : null;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"showSearch\", \"tagRender\", \"direction\", \"omitDomProps\", \"displayValues\", \"onDisplayValuesChange\", \"emptyOptions\", \"notFoundContent\", \"onClear\", \"mode\", \"disabled\", \"loading\", \"getInputElement\", \"getRawInputElement\", \"open\", \"defaultOpen\", \"onDropdownVisibleChange\", \"activeValue\", \"onActiveValueChange\", \"activeDescendantId\", \"searchValue\", \"autoClearSearchValue\", \"onSearch\", \"onSearchSplit\", \"tokenSeparators\", \"allowClear\", \"showArrow\", \"inputIcon\", \"clearIcon\", \"OptionList\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"placement\", \"getPopupContainer\", \"showAction\", \"onFocus\", \"onBlur\", \"onKeyUp\", \"onKeyDown\", \"onMouseDown\"];\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { BaseSelectContext } from \"./hooks/useBaseProps\";\nimport useDelayReset from \"./hooks/useDelayReset\";\nimport useLock from \"./hooks/useLock\";\nimport useSelectTriggerControl from \"./hooks/useSelectTriggerControl\";\nimport Selector from \"./Selector\";\nimport SelectTrigger from \"./SelectTrigger\";\nimport TransBtn from \"./TransBtn\";\nimport { getSeparatedContent } from \"./utils/valueUtil\";\nvar DEFAULT_OMIT_PROPS = ['value', 'onChange', 'removeIcon', 'placeholder', 'autoFocus', 'maxTagCount', 'maxTagTextLength', 'maxTagPlaceholder', 'choiceTransitionName', 'onInputKeyDown', 'onPopupScroll', 'tabIndex'];\nexport function isMultiple(mode) {\n return mode === 'tags' || mode === 'multiple';\n}\nvar BaseSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _customizeRawInputEle, _classNames2;\n var id = props.id,\n prefixCls = props.prefixCls,\n className = props.className,\n showSearch = props.showSearch,\n tagRender = props.tagRender,\n direction = props.direction,\n omitDomProps = props.omitDomProps,\n displayValues = props.displayValues,\n onDisplayValuesChange = props.onDisplayValuesChange,\n emptyOptions = props.emptyOptions,\n _props$notFoundConten = props.notFoundContent,\n notFoundContent = _props$notFoundConten === void 0 ? 'Not Found' : _props$notFoundConten,\n onClear = props.onClear,\n mode = props.mode,\n disabled = props.disabled,\n loading = props.loading,\n getInputElement = props.getInputElement,\n getRawInputElement = props.getRawInputElement,\n open = props.open,\n defaultOpen = props.defaultOpen,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n activeValue = props.activeValue,\n onActiveValueChange = props.onActiveValueChange,\n activeDescendantId = props.activeDescendantId,\n searchValue = props.searchValue,\n autoClearSearchValue = props.autoClearSearchValue,\n onSearch = props.onSearch,\n onSearchSplit = props.onSearchSplit,\n tokenSeparators = props.tokenSeparators,\n allowClear = props.allowClear,\n showArrow = props.showArrow,\n inputIcon = props.inputIcon,\n clearIcon = props.clearIcon,\n OptionList = props.OptionList,\n animation = props.animation,\n transitionName = props.transitionName,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n placement = props.placement,\n getPopupContainer = props.getPopupContainer,\n _props$showAction = props.showAction,\n showAction = _props$showAction === void 0 ? [] : _props$showAction,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyUp = props.onKeyUp,\n onKeyDown = props.onKeyDown,\n onMouseDown = props.onMouseDown,\n restProps = _objectWithoutProperties(props, _excluded);\n\n // ============================== MISC ==============================\n var multiple = isMultiple(mode);\n var mergedShowSearch = (showSearch !== undefined ? showSearch : multiple) || mode === 'combobox';\n var domProps = _objectSpread({}, restProps);\n DEFAULT_OMIT_PROPS.forEach(function (propName) {\n delete domProps[propName];\n });\n omitDomProps === null || omitDomProps === void 0 ? void 0 : omitDomProps.forEach(function (propName) {\n delete domProps[propName];\n });\n\n // ============================= Mobile =============================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n React.useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []);\n\n // ============================== Refs ==============================\n var containerRef = React.useRef(null);\n var selectorDomRef = React.useRef(null);\n var triggerRef = React.useRef(null);\n var selectorRef = React.useRef(null);\n var listRef = React.useRef(null);\n\n /** Used for component focused management */\n var _useDelayReset = useDelayReset(),\n _useDelayReset2 = _slicedToArray(_useDelayReset, 3),\n mockFocused = _useDelayReset2[0],\n setMockFocused = _useDelayReset2[1],\n cancelSetMockFocused = _useDelayReset2[2];\n\n // =========================== Imperative ===========================\n React.useImperativeHandle(ref, function () {\n var _selectorRef$current, _selectorRef$current2;\n return {\n focus: (_selectorRef$current = selectorRef.current) === null || _selectorRef$current === void 0 ? void 0 : _selectorRef$current.focus,\n blur: (_selectorRef$current2 = selectorRef.current) === null || _selectorRef$current2 === void 0 ? void 0 : _selectorRef$current2.blur,\n scrollTo: function scrollTo(arg) {\n var _listRef$current;\n return (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(arg);\n }\n };\n });\n\n // ========================== Search Value ==========================\n var mergedSearchValue = React.useMemo(function () {\n var _displayValues$;\n if (mode !== 'combobox') {\n return searchValue;\n }\n var val = (_displayValues$ = displayValues[0]) === null || _displayValues$ === void 0 ? void 0 : _displayValues$.value;\n return typeof val === 'string' || typeof val === 'number' ? String(val) : '';\n }, [searchValue, mode, displayValues]);\n\n // ========================== Custom Input ==========================\n // Only works in `combobox`\n var customizeInputElement = mode === 'combobox' && typeof getInputElement === 'function' && getInputElement() || null;\n\n // Used for customize replacement for `rc-cascader`\n var customizeRawInputElement = typeof getRawInputElement === 'function' && getRawInputElement();\n var customizeRawInputRef = useComposeRef(selectorDomRef, customizeRawInputElement === null || customizeRawInputElement === void 0 ? void 0 : (_customizeRawInputEle = customizeRawInputElement.props) === null || _customizeRawInputEle === void 0 ? void 0 : _customizeRawInputEle.ref);\n\n // ============================== Open ==============================\n var _useMergedState = useMergedState(undefined, {\n defaultValue: defaultOpen,\n value: open\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerOpen = _useMergedState2[0],\n setInnerOpen = _useMergedState2[1];\n var mergedOpen = innerOpen;\n\n // Not trigger `open` in `combobox` when `notFoundContent` is empty\n var emptyListContent = !notFoundContent && emptyOptions;\n if (disabled || emptyListContent && mergedOpen && mode === 'combobox') {\n mergedOpen = false;\n }\n var triggerOpen = emptyListContent ? false : mergedOpen;\n var onToggleOpen = React.useCallback(function (newOpen) {\n var nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;\n if (!disabled) {\n setInnerOpen(nextOpen);\n if (mergedOpen !== nextOpen) {\n onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 ? void 0 : onDropdownVisibleChange(nextOpen);\n }\n }\n }, [disabled, mergedOpen, setInnerOpen, onDropdownVisibleChange]);\n\n // ============================= Search =============================\n var tokenWithEnter = React.useMemo(function () {\n return (tokenSeparators || []).some(function (tokenSeparator) {\n return ['\\n', '\\r\\n'].includes(tokenSeparator);\n });\n }, [tokenSeparators]);\n var onInternalSearch = function onInternalSearch(searchText, fromTyping, isCompositing) {\n var ret = true;\n var newSearchText = searchText;\n onActiveValueChange === null || onActiveValueChange === void 0 ? void 0 : onActiveValueChange(null);\n\n // Check if match the `tokenSeparators`\n var patchLabels = isCompositing ? null : getSeparatedContent(searchText, tokenSeparators);\n\n // Ignore combobox since it's not split-able\n if (mode !== 'combobox' && patchLabels) {\n newSearchText = '';\n onSearchSplit === null || onSearchSplit === void 0 ? void 0 : onSearchSplit(patchLabels);\n\n // Should close when paste finish\n onToggleOpen(false);\n\n // Tell Selector that break next actions\n ret = false;\n }\n if (onSearch && mergedSearchValue !== newSearchText) {\n onSearch(newSearchText, {\n source: fromTyping ? 'typing' : 'effect'\n });\n }\n return ret;\n };\n\n // Only triggered when menu is closed & mode is tags\n // If menu is open, OptionList will take charge\n // If mode isn't tags, press enter is not meaningful when you can't see any option\n var onInternalSearchSubmit = function onInternalSearchSubmit(searchText) {\n // prevent empty tags from appearing when you click the Enter button\n if (!searchText || !searchText.trim()) {\n return;\n }\n onSearch(searchText, {\n source: 'submit'\n });\n };\n\n // Close will clean up single mode search text\n React.useEffect(function () {\n if (!mergedOpen && !multiple && mode !== 'combobox') {\n onInternalSearch('', false, false);\n }\n }, [mergedOpen]);\n\n // ============================ Disabled ============================\n // Close dropdown & remove focus state when disabled change\n React.useEffect(function () {\n if (innerOpen && disabled) {\n setInnerOpen(false);\n }\n if (disabled) {\n setMockFocused(false);\n }\n }, [disabled]);\n\n // ============================ Keyboard ============================\n /**\n * We record input value here to check if can press to clean up by backspace\n * - null: Key is not down, this is reset by key up\n * - true: Search text is empty when first time backspace down\n * - false: Search text is not empty when first time backspace down\n */\n var _useLock = useLock(),\n _useLock2 = _slicedToArray(_useLock, 2),\n getClearLock = _useLock2[0],\n setClearLock = _useLock2[1];\n\n // KeyDown\n var onInternalKeyDown = function onInternalKeyDown(event) {\n var clearLock = getClearLock();\n var which = event.which;\n if (which === KeyCode.ENTER) {\n // Do not submit form when type in the input\n if (mode !== 'combobox') {\n event.preventDefault();\n }\n\n // We only manage open state here, close logic should handle by list component\n if (!mergedOpen) {\n onToggleOpen(true);\n }\n }\n setClearLock(!!mergedSearchValue);\n\n // Remove value by `backspace`\n if (which === KeyCode.BACKSPACE && !clearLock && multiple && !mergedSearchValue && displayValues.length) {\n var cloneDisplayValues = _toConsumableArray(displayValues);\n var removedDisplayValue = null;\n for (var i = cloneDisplayValues.length - 1; i >= 0; i -= 1) {\n var current = cloneDisplayValues[i];\n if (!current.disabled) {\n cloneDisplayValues.splice(i, 1);\n removedDisplayValue = current;\n break;\n }\n }\n if (removedDisplayValue) {\n onDisplayValuesChange(cloneDisplayValues, {\n type: 'remove',\n values: [removedDisplayValue]\n });\n }\n }\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n if (mergedOpen && listRef.current) {\n var _listRef$current2;\n (_listRef$current2 = listRef.current).onKeyDown.apply(_listRef$current2, [event].concat(rest));\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown.apply(void 0, [event].concat(rest));\n };\n\n // KeyUp\n var onInternalKeyUp = function onInternalKeyUp(event) {\n for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n rest[_key2 - 1] = arguments[_key2];\n }\n if (mergedOpen && listRef.current) {\n var _listRef$current3;\n (_listRef$current3 = listRef.current).onKeyUp.apply(_listRef$current3, [event].concat(rest));\n }\n onKeyUp === null || onKeyUp === void 0 ? void 0 : onKeyUp.apply(void 0, [event].concat(rest));\n };\n\n // ============================ Selector ============================\n var onSelectorRemove = function onSelectorRemove(val) {\n var newValues = displayValues.filter(function (i) {\n return i !== val;\n });\n onDisplayValuesChange(newValues, {\n type: 'remove',\n values: [val]\n });\n };\n\n // ========================== Focus / Blur ==========================\n /** Record real focus status */\n var focusRef = React.useRef(false);\n var onContainerFocus = function onContainerFocus() {\n setMockFocused(true);\n if (!disabled) {\n if (onFocus && !focusRef.current) {\n onFocus.apply(void 0, arguments);\n }\n\n // `showAction` should handle `focus` if set\n if (showAction.includes('focus')) {\n onToggleOpen(true);\n }\n }\n focusRef.current = true;\n };\n var onContainerBlur = function onContainerBlur() {\n setMockFocused(false, function () {\n focusRef.current = false;\n onToggleOpen(false);\n });\n if (disabled) {\n return;\n }\n if (mergedSearchValue) {\n // `tags` mode should move `searchValue` into values\n if (mode === 'tags') {\n onSearch(mergedSearchValue, {\n source: 'submit'\n });\n } else if (mode === 'multiple') {\n // `multiple` mode only clean the search value but not trigger event\n onSearch('', {\n source: 'blur'\n });\n }\n }\n if (onBlur) {\n onBlur.apply(void 0, arguments);\n }\n };\n\n // Give focus back of Select\n var activeTimeoutIds = [];\n React.useEffect(function () {\n return function () {\n activeTimeoutIds.forEach(function (timeoutId) {\n return clearTimeout(timeoutId);\n });\n activeTimeoutIds.splice(0, activeTimeoutIds.length);\n };\n }, []);\n var onInternalMouseDown = function onInternalMouseDown(event) {\n var _triggerRef$current;\n var target = event.target;\n var popupElement = (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.getPopupElement();\n\n // We should give focus back to selector if clicked item is not focusable\n if (popupElement && popupElement.contains(target)) {\n var timeoutId = setTimeout(function () {\n var index = activeTimeoutIds.indexOf(timeoutId);\n if (index !== -1) {\n activeTimeoutIds.splice(index, 1);\n }\n cancelSetMockFocused();\n if (!mobile && !popupElement.contains(document.activeElement)) {\n var _selectorRef$current3;\n (_selectorRef$current3 = selectorRef.current) === null || _selectorRef$current3 === void 0 ? void 0 : _selectorRef$current3.focus();\n }\n });\n activeTimeoutIds.push(timeoutId);\n }\n for (var _len3 = arguments.length, restArgs = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n restArgs[_key3 - 1] = arguments[_key3];\n }\n onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown.apply(void 0, [event].concat(restArgs));\n };\n\n // ============================ Dropdown ============================\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n containerWidth = _React$useState4[0],\n setContainerWidth = _React$useState4[1];\n var _React$useState5 = React.useState({}),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n forceUpdate = _React$useState6[1];\n // We need force update here since popup dom is render async\n function onPopupMouseEnter() {\n forceUpdate({});\n }\n useLayoutEffect(function () {\n if (triggerOpen) {\n var _containerRef$current;\n var newWidth = Math.ceil((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.offsetWidth);\n if (containerWidth !== newWidth && !Number.isNaN(newWidth)) {\n setContainerWidth(newWidth);\n }\n }\n }, [triggerOpen]);\n\n // Used for raw custom input trigger\n var onTriggerVisibleChange;\n if (customizeRawInputElement) {\n onTriggerVisibleChange = function onTriggerVisibleChange(newOpen) {\n onToggleOpen(newOpen);\n };\n }\n\n // Close when click on non-select element\n useSelectTriggerControl(function () {\n var _triggerRef$current2;\n return [containerRef.current, (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.getPopupElement()];\n }, triggerOpen, onToggleOpen, !!customizeRawInputElement);\n\n // ============================ Context =============================\n var baseSelectContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, props), {}, {\n notFoundContent: notFoundContent,\n open: mergedOpen,\n triggerOpen: triggerOpen,\n id: id,\n showSearch: mergedShowSearch,\n multiple: multiple,\n toggleOpen: onToggleOpen\n });\n }, [props, notFoundContent, triggerOpen, mergedOpen, id, mergedShowSearch, multiple, onToggleOpen]);\n\n // ==================================================================\n // == Render ==\n // ==================================================================\n\n // ============================= Arrow ==============================\n var mergedShowArrow = showArrow !== undefined ? showArrow : loading || !multiple && mode !== 'combobox';\n var arrowNode;\n if (mergedShowArrow) {\n arrowNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: classNames(\"\".concat(prefixCls, \"-arrow\"), _defineProperty({}, \"\".concat(prefixCls, \"-arrow-loading\"), loading)),\n customizeIcon: inputIcon,\n customizeIconProps: {\n loading: loading,\n searchValue: mergedSearchValue,\n open: mergedOpen,\n focused: mockFocused,\n showSearch: mergedShowSearch\n }\n });\n }\n\n // ============================= Clear ==============================\n var clearNode;\n var onClearMouseDown = function onClearMouseDown() {\n var _selectorRef$current4;\n onClear === null || onClear === void 0 ? void 0 : onClear();\n (_selectorRef$current4 = selectorRef.current) === null || _selectorRef$current4 === void 0 ? void 0 : _selectorRef$current4.focus();\n onDisplayValuesChange([], {\n type: 'clear',\n values: displayValues\n });\n onInternalSearch('', false, false);\n };\n if (!disabled && allowClear && (displayValues.length || mergedSearchValue) && !(mode === 'combobox' && mergedSearchValue === '')) {\n clearNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(prefixCls, \"-clear\"),\n onMouseDown: onClearMouseDown,\n customizeIcon: clearIcon\n }, \"\\xD7\");\n }\n\n // =========================== OptionList ===========================\n var optionList = /*#__PURE__*/React.createElement(OptionList, {\n ref: listRef\n });\n\n // ============================= Select =============================\n var mergedClassName = classNames(prefixCls, className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mockFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-multiple\"), multiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-single\"), !multiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-allow-clear\"), allowClear), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-show-arrow\"), mergedShowArrow), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-open\"), mergedOpen), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-customize-input\"), customizeInputElement), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-show-search\"), mergedShowSearch), _classNames2));\n\n // >>> Selector\n var selectorNode = /*#__PURE__*/React.createElement(SelectTrigger, {\n ref: triggerRef,\n disabled: disabled,\n prefixCls: prefixCls,\n visible: triggerOpen,\n popupElement: optionList,\n containerWidth: containerWidth,\n animation: animation,\n transitionName: transitionName,\n dropdownStyle: dropdownStyle,\n dropdownClassName: dropdownClassName,\n direction: direction,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n dropdownRender: dropdownRender,\n dropdownAlign: dropdownAlign,\n placement: placement,\n getPopupContainer: getPopupContainer,\n empty: emptyOptions,\n getTriggerDOMNode: function getTriggerDOMNode() {\n return selectorDomRef.current;\n },\n onPopupVisibleChange: onTriggerVisibleChange,\n onPopupMouseEnter: onPopupMouseEnter\n }, customizeRawInputElement ? /*#__PURE__*/React.cloneElement(customizeRawInputElement, {\n ref: customizeRawInputRef\n }) : /*#__PURE__*/React.createElement(Selector, _extends({}, props, {\n domRef: selectorDomRef,\n prefixCls: prefixCls,\n inputElement: customizeInputElement,\n ref: selectorRef,\n id: id,\n showSearch: mergedShowSearch,\n autoClearSearchValue: autoClearSearchValue,\n mode: mode,\n activeDescendantId: activeDescendantId,\n tagRender: tagRender,\n values: displayValues,\n open: mergedOpen,\n onToggleOpen: onToggleOpen,\n activeValue: activeValue,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n onSearchSubmit: onInternalSearchSubmit,\n onRemove: onSelectorRemove,\n tokenWithEnter: tokenWithEnter\n })));\n\n // >>> Render\n var renderNode;\n\n // Render raw\n if (customizeRawInputElement) {\n renderNode = selectorNode;\n } else {\n renderNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergedClassName\n }, domProps, {\n ref: containerRef,\n onMouseDown: onInternalMouseDown,\n onKeyDown: onInternalKeyDown,\n onKeyUp: onInternalKeyUp,\n onFocus: onContainerFocus,\n onBlur: onContainerBlur\n }), mockFocused && !mergedOpen && /*#__PURE__*/React.createElement(\"span\", {\n style: {\n width: 0,\n height: 0,\n position: 'absolute',\n overflow: 'hidden',\n opacity: 0\n },\n \"aria-live\": \"polite\"\n }, \"\".concat(displayValues.map(function (_ref) {\n var label = _ref.label,\n value = _ref.value;\n return ['number', 'string'].includes(_typeof(label)) ? label : value;\n }).join(', '))), selectorNode, arrowNode, clearNode);\n }\n return /*#__PURE__*/React.createElement(BaseSelectContext.Provider, {\n value: baseSelectContext\n }, renderNode);\n});\n\n// Set display name for dev\nif (process.env.NODE_ENV !== 'production') {\n BaseSelect.displayName = 'BaseSelect';\n}\nexport default BaseSelect;","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n\n/**\n * Similar with `useLock`, but this hook will always execute last value.\n * When set to `true`, it will keep `true` for a short time even if `false` is set.\n */\nexport default function useDelayReset() {\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n bool = _React$useState2[0],\n setBool = _React$useState2[1];\n var delayRef = React.useRef(null);\n var cancelLatest = function cancelLatest() {\n window.clearTimeout(delayRef.current);\n };\n React.useEffect(function () {\n return cancelLatest;\n }, []);\n var delaySetBool = function delaySetBool(value, callback) {\n cancelLatest();\n delayRef.current = window.setTimeout(function () {\n setBool(value);\n if (callback) {\n callback();\n }\n }, timeout);\n };\n return [bool, delaySetBool, cancelLatest];\n}","import * as React from 'react';\nexport default function useSelectTriggerControl(elements, open, triggerOpen, customizedTrigger) {\n var propsRef = React.useRef(null);\n propsRef.current = {\n open: open,\n triggerOpen: triggerOpen,\n customizedTrigger: customizedTrigger\n };\n React.useEffect(function () {\n function onGlobalMouseDown(event) {\n var _propsRef$current;\n // If trigger is customized, Trigger will take control of popupVisible\n if ((_propsRef$current = propsRef.current) !== null && _propsRef$current !== void 0 && _propsRef$current.customizedTrigger) {\n return;\n }\n var target = event.target;\n if (target.shadowRoot && event.composed) {\n target = event.composedPath()[0] || target;\n }\n if (propsRef.current.open && elements().filter(function (element) {\n return element;\n }).every(function (element) {\n return !element.contains(target) && element !== target;\n })) {\n // Should trigger close\n propsRef.current.triggerOpen(false);\n }\n }\n window.addEventListener('mousedown', onGlobalMouseDown);\n return function () {\n return window.removeEventListener('mousedown', onGlobalMouseDown);\n };\n }, []);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { toArray } from \"../utils/commonUtil\";\nimport { injectPropsWithOption } from \"../utils/valueUtil\";\nfunction includes(test, search) {\n return toArray(test).join('').toUpperCase().includes(search);\n}\nexport default (function (options, fieldNames, searchValue, filterOption, optionFilterProp) {\n return React.useMemo(function () {\n if (!searchValue || filterOption === false) {\n return options;\n }\n var fieldOptions = fieldNames.options,\n fieldLabel = fieldNames.label,\n fieldValue = fieldNames.value;\n var filteredOptions = [];\n var customizeFilter = typeof filterOption === 'function';\n var upperSearch = searchValue.toUpperCase();\n var filterFunc = customizeFilter ? filterOption : function (_, option) {\n // Use provided `optionFilterProp`\n if (optionFilterProp) {\n return includes(option[optionFilterProp], upperSearch);\n }\n\n // Auto select `label` or `value` by option type\n if (option[fieldOptions]) {\n // hack `fieldLabel` since `OptionGroup` children is not `label`\n return includes(option[fieldLabel !== 'children' ? fieldLabel : 'label'], upperSearch);\n }\n return includes(option[fieldValue], upperSearch);\n };\n var wrapOption = customizeFilter ? function (opt) {\n return injectPropsWithOption(opt);\n } : function (opt) {\n return opt;\n };\n options.forEach(function (item) {\n // Group should check child options\n if (item[fieldOptions]) {\n // Check group first\n var matchGroup = filterFunc(searchValue, wrapOption(item));\n if (matchGroup) {\n filteredOptions.push(item);\n } else {\n // Check option\n var subOptions = item[fieldOptions].filter(function (subItem) {\n return filterFunc(searchValue, wrapOption(subItem));\n });\n if (subOptions.length) {\n filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, _defineProperty({}, fieldOptions, subOptions)));\n }\n }\n return;\n }\n if (filterFunc(searchValue, wrapOption(item))) {\n filteredOptions.push(item);\n }\n });\n return filteredOptions;\n }, [options, filterOption, optionFilterProp, searchValue, fieldNames]);\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n\n/** Get unique id for accessibility usage */\nexport function getUUID() {\n var retId;\n\n // Test never reach\n /* istanbul ignore if */\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n return retId;\n}\nexport default function useId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n setInnerId(\"rc_select_\".concat(getUUID()));\n }, []);\n return id || innerId;\n}","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"value\"],\n _excluded2 = [\"children\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nfunction convertNodeToOption(node) {\n var _ref = node,\n key = _ref.key,\n _ref$props = _ref.props,\n children = _ref$props.children,\n value = _ref$props.value,\n restProps = _objectWithoutProperties(_ref$props, _excluded);\n return _objectSpread({\n key: key,\n value: value !== undefined ? value : key,\n children: children\n }, restProps);\n}\nexport function convertChildrenToData(nodes) {\n var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return toArray(nodes).map(function (node, index) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return null;\n }\n var _ref2 = node,\n isSelectOptGroup = _ref2.type.isSelectOptGroup,\n key = _ref2.key,\n _ref2$props = _ref2.props,\n children = _ref2$props.children,\n restProps = _objectWithoutProperties(_ref2$props, _excluded2);\n if (optionOnly || !isSelectOptGroup) {\n return convertNodeToOption(node);\n }\n return _objectSpread(_objectSpread({\n key: \"__RC_SELECT_GRP__\".concat(key === null ? index : key, \"__\"),\n label: key\n }, restProps), {}, {\n options: convertChildrenToData(children)\n });\n }).filter(function (data) {\n return data;\n });\n}","import * as React from 'react';\n\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\nexport default function useRefFunc(callback) {\n var funcRef = React.useRef();\n funcRef.current = callback;\n var cacheFn = React.useCallback(function () {\n return funcRef.current.apply(funcRef, arguments);\n }, []);\n return cacheFn;\n}","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar OptGroup = function OptGroup() {\n return null;\n};\nOptGroup.isSelectOptGroup = true;\nexport default OptGroup;","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar Option = function Option() {\n return null;\n};\nOption.isSelectOption = true;\nexport default Option;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport classNames from 'classnames';\n/**\n * Fill component to provided the scroll content real height.\n */\nvar Filler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var height = _ref.height,\n offsetY = _ref.offsetY,\n offsetX = _ref.offsetX,\n children = _ref.children,\n prefixCls = _ref.prefixCls,\n onInnerResize = _ref.onInnerResize,\n innerProps = _ref.innerProps,\n rtl = _ref.rtl,\n extra = _ref.extra;\n var outerStyle = {};\n var innerStyle = {\n display: 'flex',\n flexDirection: 'column'\n };\n if (offsetY !== undefined) {\n var _objectSpread2;\n // Not set `width` since this will break `sticky: right`\n outerStyle = {\n height: height,\n position: 'relative',\n overflow: 'hidden'\n };\n innerStyle = _objectSpread(_objectSpread({}, innerStyle), {}, (_objectSpread2 = {\n transform: \"translateY(\".concat(offsetY, \"px)\")\n }, _defineProperty(_objectSpread2, rtl ? 'marginRight' : 'marginLeft', -offsetX), _defineProperty(_objectSpread2, \"position\", 'absolute'), _defineProperty(_objectSpread2, \"left\", 0), _defineProperty(_objectSpread2, \"right\", 0), _defineProperty(_objectSpread2, \"top\", 0), _objectSpread2));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: outerStyle\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref2) {\n var offsetHeight = _ref2.offsetHeight;\n if (offsetHeight && onInnerResize) {\n onInnerResize();\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n style: innerStyle,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-holder-inner\"), prefixCls)),\n ref: ref\n }, innerProps), children, extra)));\n});\nFiller.displayName = 'Filler';\nexport default Filler;","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};\nexport default wrapperRaf;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nfunction getPageXY(e, horizontal) {\n var obj = 'touches' in e ? e.touches[0] : e;\n return obj[horizontal ? 'pageX' : 'pageY'];\n}\nvar ScrollBar = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var prefixCls = props.prefixCls,\n rtl = props.rtl,\n scrollOffset = props.scrollOffset,\n scrollRange = props.scrollRange,\n onStartMove = props.onStartMove,\n onStopMove = props.onStopMove,\n onScroll = props.onScroll,\n horizontal = props.horizontal,\n spinSize = props.spinSize,\n containerSize = props.containerSize;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n dragging = _React$useState2[0],\n setDragging = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n pageXY = _React$useState4[0],\n setPageXY = _React$useState4[1];\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n startTop = _React$useState6[0],\n setStartTop = _React$useState6[1];\n var isLTR = !rtl;\n // ========================= Refs =========================\n var scrollbarRef = React.useRef();\n var thumbRef = React.useRef();\n // ======================= Visible ========================\n var _React$useState7 = React.useState(false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n visible = _React$useState8[0],\n setVisible = _React$useState8[1];\n var visibleTimeoutRef = React.useRef();\n var delayHidden = function delayHidden() {\n clearTimeout(visibleTimeoutRef.current);\n setVisible(true);\n visibleTimeoutRef.current = setTimeout(function () {\n setVisible(false);\n }, 3000);\n };\n // ======================== Range =========================\n var enableScrollRange = scrollRange - containerSize || 0;\n var enableOffsetRange = containerSize - spinSize || 0;\n // `scrollWidth` < `clientWidth` means no need to show scrollbar\n var canScroll = enableScrollRange > 0;\n // ========================= Top ==========================\n var top = React.useMemo(function () {\n if (scrollOffset === 0 || enableScrollRange === 0) {\n return 0;\n }\n var ptg = scrollOffset / enableScrollRange;\n return ptg * enableOffsetRange;\n }, [scrollOffset, enableScrollRange, enableOffsetRange]);\n // ====================== Container =======================\n var onContainerMouseDown = function onContainerMouseDown(e) {\n e.stopPropagation();\n e.preventDefault();\n };\n // ======================== Thumb =========================\n var stateRef = React.useRef({\n top: top,\n dragging: dragging,\n pageY: pageXY,\n startTop: startTop\n });\n stateRef.current = {\n top: top,\n dragging: dragging,\n pageY: pageXY,\n startTop: startTop\n };\n var onThumbMouseDown = function onThumbMouseDown(e) {\n setDragging(true);\n setPageXY(getPageXY(e, horizontal));\n setStartTop(stateRef.current.top);\n onStartMove();\n e.stopPropagation();\n e.preventDefault();\n };\n // ======================== Effect ========================\n // React make event as passive, but we need to preventDefault\n // Add event on dom directly instead.\n // ref: https://github.com/facebook/react/issues/9809\n React.useEffect(function () {\n var onScrollbarTouchStart = function onScrollbarTouchStart(e) {\n e.preventDefault();\n };\n var scrollbarEle = scrollbarRef.current;\n var thumbEle = thumbRef.current;\n scrollbarEle.addEventListener('touchstart', onScrollbarTouchStart);\n thumbEle.addEventListener('touchstart', onThumbMouseDown);\n return function () {\n scrollbarEle.removeEventListener('touchstart', onScrollbarTouchStart);\n thumbEle.removeEventListener('touchstart', onThumbMouseDown);\n };\n }, []);\n // Pass to effect\n var enableScrollRangeRef = React.useRef();\n enableScrollRangeRef.current = enableScrollRange;\n var enableOffsetRangeRef = React.useRef();\n enableOffsetRangeRef.current = enableOffsetRange;\n React.useEffect(function () {\n if (dragging) {\n var moveRafId;\n var onMouseMove = function onMouseMove(e) {\n var _stateRef$current = stateRef.current,\n stateDragging = _stateRef$current.dragging,\n statePageY = _stateRef$current.pageY,\n stateStartTop = _stateRef$current.startTop;\n raf.cancel(moveRafId);\n if (stateDragging) {\n var offset = getPageXY(e, horizontal) - statePageY;\n var newTop = stateStartTop;\n if (!isLTR && horizontal) {\n newTop -= offset;\n } else {\n newTop += offset;\n }\n var tmpEnableScrollRange = enableScrollRangeRef.current;\n var tmpEnableOffsetRange = enableOffsetRangeRef.current;\n var ptg = tmpEnableOffsetRange ? newTop / tmpEnableOffsetRange : 0;\n var newScrollTop = Math.ceil(ptg * tmpEnableScrollRange);\n newScrollTop = Math.max(newScrollTop, 0);\n newScrollTop = Math.min(newScrollTop, tmpEnableScrollRange);\n moveRafId = raf(function () {\n onScroll(newScrollTop, horizontal);\n });\n }\n };\n var onMouseUp = function onMouseUp() {\n setDragging(false);\n onStopMove();\n };\n window.addEventListener('mousemove', onMouseMove);\n window.addEventListener('touchmove', onMouseMove);\n window.addEventListener('mouseup', onMouseUp);\n window.addEventListener('touchend', onMouseUp);\n return function () {\n window.removeEventListener('mousemove', onMouseMove);\n window.removeEventListener('touchmove', onMouseMove);\n window.removeEventListener('mouseup', onMouseUp);\n window.removeEventListener('touchend', onMouseUp);\n raf.cancel(moveRafId);\n };\n }\n }, [dragging]);\n React.useEffect(function () {\n delayHidden();\n }, [scrollOffset]);\n // ====================== Imperative ======================\n React.useImperativeHandle(ref, function () {\n return {\n delayHidden: delayHidden\n };\n });\n // ======================== Render ========================\n var scrollbarPrefixCls = \"\".concat(prefixCls, \"-scrollbar\");\n var containerStyle = {\n position: 'absolute',\n visibility: visible && canScroll ? null : 'hidden'\n };\n var thumbStyle = {\n position: 'absolute',\n background: 'rgba(0, 0, 0, 0.5)',\n borderRadius: 99,\n cursor: 'pointer',\n userSelect: 'none'\n };\n if (horizontal) {\n // Container\n containerStyle.height = 8;\n containerStyle.left = 0;\n containerStyle.right = 0;\n containerStyle.bottom = 0;\n // Thumb\n thumbStyle.height = '100%';\n thumbStyle.width = spinSize;\n if (isLTR) {\n thumbStyle.left = top;\n } else {\n thumbStyle.right = top;\n }\n } else {\n // Container\n containerStyle.width = 8;\n containerStyle.top = 0;\n containerStyle.bottom = 0;\n if (isLTR) {\n containerStyle.right = 0;\n } else {\n containerStyle.left = 0;\n }\n // Thumb\n thumbStyle.width = '100%';\n thumbStyle.height = spinSize;\n thumbStyle.top = top;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarRef,\n className: classNames(scrollbarPrefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(scrollbarPrefixCls, \"-horizontal\"), horizontal), _defineProperty(_classNames, \"\".concat(scrollbarPrefixCls, \"-vertical\"), !horizontal), _defineProperty(_classNames, \"\".concat(scrollbarPrefixCls, \"-visible\"), visible), _classNames)),\n style: containerStyle,\n onMouseDown: onContainerMouseDown,\n onMouseMove: delayHidden\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: thumbRef,\n className: classNames(\"\".concat(scrollbarPrefixCls, \"-thumb\"), _defineProperty({}, \"\".concat(scrollbarPrefixCls, \"-thumb-moving\"), dragging)),\n style: thumbStyle,\n onMouseDown: onThumbMouseDown\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n ScrollBar.displayName = 'ScrollBar';\n}\nexport default ScrollBar;","import * as React from 'react';\nexport function Item(_ref) {\n var children = _ref.children,\n setRef = _ref.setRef;\n var refFunc = React.useCallback(function (node) {\n setRef(node);\n }, []);\n return /*#__PURE__*/React.cloneElement(children, {\n ref: refFunc\n });\n}","import React from 'react';\nimport ReactDOM from 'react-dom';\nexport function isDOM(node) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element\n // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement\n return node instanceof HTMLElement || node instanceof SVGElement;\n}\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n if (isDOM(node)) {\n return node;\n }\n if (node instanceof React.Component) {\n return ReactDOM.findDOMNode(node);\n }\n return null;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n// Firefox has low performance of map.\nvar CacheMap = /*#__PURE__*/function () {\n function CacheMap() {\n _classCallCheck(this, CacheMap);\n this.maps = void 0;\n // Used for cache key\n // `useMemo` no need to update if `id` not change\n this.id = 0;\n this.maps = Object.create(null);\n }\n _createClass(CacheMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.maps[key] = value;\n this.id += 1;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.maps[key];\n }\n }]);\n return CacheMap;\n}();\nexport default CacheMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { findListDiffIndex } from '../utils/algorithmUtil';\nexport default function useDiffItem(data, getKey, onDiff) {\n var _React$useState = React.useState(data),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevData = _React$useState2[0],\n setPrevData = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n diffItem = _React$useState4[0],\n setDiffItem = _React$useState4[1];\n React.useEffect(function () {\n var diff = findListDiffIndex(prevData || [], data || [], getKey);\n if ((diff === null || diff === void 0 ? void 0 : diff.index) !== undefined) {\n onDiff === null || onDiff === void 0 ? void 0 : onDiff(diff.index);\n setDiffItem(data[diff.index]);\n }\n setPrevData(data);\n }, [data]);\n return [diffItem];\n}","/**\n * Get index with specific start index one by one. e.g.\n * min: 3, max: 9, start: 6\n *\n * Return index is:\n * [0]: 6\n * [1]: 7\n * [2]: 5\n * [3]: 8\n * [4]: 4\n * [5]: 9\n * [6]: 3\n */\nexport function getIndexByStartLoc(min, max, start, index) {\n var beforeCount = start - min;\n var afterCount = max - start;\n var balanceCount = Math.min(beforeCount, afterCount) * 2;\n // Balance\n if (index <= balanceCount) {\n var stepIndex = Math.floor(index / 2);\n if (index % 2) {\n return start + stepIndex + 1;\n }\n return start - stepIndex;\n }\n // One is out of range\n if (beforeCount > afterCount) {\n return start - (index - afterCount);\n }\n return start + (index - beforeCount);\n}\n/**\n * We assume that 2 list has only 1 item diff and others keeping the order.\n * So we can use dichotomy algorithm to find changed one.\n */\nexport function findListDiffIndex(originList, targetList, getKey) {\n var originLen = originList.length;\n var targetLen = targetList.length;\n var shortList;\n var longList;\n if (originLen === 0 && targetLen === 0) {\n return null;\n }\n if (originLen < targetLen) {\n shortList = originList;\n longList = targetList;\n } else {\n shortList = targetList;\n longList = originList;\n }\n var notExistKey = {\n __EMPTY_ITEM__: true\n };\n function getItemKey(item) {\n if (item !== undefined) {\n return getKey(item);\n }\n return notExistKey;\n }\n // Loop to find diff one\n var diffIndex = null;\n var multiple = Math.abs(originLen - targetLen) !== 1;\n for (var i = 0; i < longList.length; i += 1) {\n var shortKey = getItemKey(shortList[i]);\n var longKey = getItemKey(longList[i]);\n if (shortKey !== longKey) {\n diffIndex = i;\n multiple = multiple || shortKey !== getItemKey(longList[i + 1]);\n break;\n }\n }\n return diffIndex === null ? null : {\n index: diffIndex,\n multiple: multiple\n };\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar isFF = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && /Firefox/i.test(navigator.userAgent);\nexport default isFF;","import { useRef } from 'react';\nexport default (function (isScrollAtTop, isScrollAtBottom) {\n // Do lock for a wheel when scrolling\n var lockRef = useRef(false);\n var lockTimeoutRef = useRef(null);\n function lockScroll() {\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = true;\n lockTimeoutRef.current = setTimeout(function () {\n lockRef.current = false;\n }, 50);\n }\n // Pass to ref since global add is in closure\n var scrollPingRef = useRef({\n top: isScrollAtTop,\n bottom: isScrollAtBottom\n });\n scrollPingRef.current.top = isScrollAtTop;\n scrollPingRef.current.bottom = isScrollAtBottom;\n return function (deltaY) {\n var smoothOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var originScroll =\n // Pass origin wheel when on the top\n deltaY < 0 && scrollPingRef.current.top ||\n // Pass origin wheel when on the bottom\n deltaY > 0 && scrollPingRef.current.bottom;\n if (smoothOffset && originScroll) {\n // No need lock anymore when it's smooth offset from touchMove interval\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = false;\n } else if (!originScroll || lockRef.current) {\n lockScroll();\n }\n return !lockRef.current && originScroll;\n };\n});","import { useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport isFF from '../utils/isFirefox';\nimport useOriginScroll from './useOriginScroll';\nexport default function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, horizontalScroll,\n/***\n * Return `true` when you need to prevent default event\n */\nonWheelDelta) {\n var offsetRef = useRef(0);\n var nextFrameRef = useRef(null);\n // Firefox patch\n var wheelValueRef = useRef(null);\n var isMouseScrollRef = useRef(false);\n // Scroll status sync\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n function onWheelY(event, deltaY) {\n raf.cancel(nextFrameRef.current);\n offsetRef.current += deltaY;\n wheelValueRef.current = deltaY;\n // Do nothing when scroll at the edge, Skip check when is in scroll\n if (originScroll(deltaY)) return;\n // Proxy of scroll events\n if (!isFF) {\n event.preventDefault();\n }\n nextFrameRef.current = raf(function () {\n // Patch a multiple for Firefox to fix wheel number too small\n // ref: https://github.com/ant-design/ant-design/issues/26372#issuecomment-679460266\n var patchMultiple = isMouseScrollRef.current ? 10 : 1;\n onWheelDelta(offsetRef.current * patchMultiple);\n offsetRef.current = 0;\n });\n }\n function onWheelX(event, deltaX) {\n onWheelDelta(deltaX, true);\n if (!isFF) {\n event.preventDefault();\n }\n }\n // Check for which direction does wheel do. `sx` means `shift + wheel`\n var wheelDirectionRef = useRef(null);\n var wheelDirectionCleanRef = useRef(null);\n function onWheel(event) {\n if (!inVirtual) return;\n // Wait for 2 frame to clean direction\n raf.cancel(wheelDirectionCleanRef.current);\n wheelDirectionCleanRef.current = raf(function () {\n wheelDirectionRef.current = null;\n }, 2);\n var deltaX = event.deltaX,\n deltaY = event.deltaY,\n shiftKey = event.shiftKey;\n var mergedDeltaX = deltaX;\n var mergedDeltaY = deltaY;\n if (wheelDirectionRef.current === 'sx' || !wheelDirectionRef.current && (shiftKey || false) && deltaY && !deltaX) {\n mergedDeltaX = deltaY;\n mergedDeltaY = 0;\n wheelDirectionRef.current = 'sx';\n }\n var absX = Math.abs(mergedDeltaX);\n var absY = Math.abs(mergedDeltaY);\n if (wheelDirectionRef.current === null) {\n wheelDirectionRef.current = horizontalScroll && absX > absY ? 'x' : 'y';\n }\n if (wheelDirectionRef.current === 'y') {\n onWheelY(event, mergedDeltaY);\n } else {\n onWheelX(event, mergedDeltaX);\n }\n }\n // A patch for firefox\n function onFireFoxScroll(event) {\n if (!inVirtual) return;\n isMouseScrollRef.current = event.detail === wheelValueRef.current;\n }\n return [onWheel, onFireFoxScroll];\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import { useRef } from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nvar SMOOTH_PTG = 14 / 15;\nexport default function useMobileTouchMove(inVirtual, listRef, callback) {\n var touchedRef = useRef(false);\n var touchYRef = useRef(0);\n var elementRef = useRef(null);\n // Smooth scroll\n var intervalRef = useRef(null);\n /* eslint-disable prefer-const */\n var cleanUpEvents;\n var onTouchMove = function onTouchMove(e) {\n if (touchedRef.current) {\n var currentY = Math.ceil(e.touches[0].pageY);\n var offsetY = touchYRef.current - currentY;\n touchYRef.current = currentY;\n if (callback(offsetY)) {\n e.preventDefault();\n }\n // Smooth interval\n clearInterval(intervalRef.current);\n intervalRef.current = setInterval(function () {\n offsetY *= SMOOTH_PTG;\n if (!callback(offsetY, true) || Math.abs(offsetY) <= 0.1) {\n clearInterval(intervalRef.current);\n }\n }, 16);\n }\n };\n var onTouchEnd = function onTouchEnd() {\n touchedRef.current = false;\n cleanUpEvents();\n };\n var onTouchStart = function onTouchStart(e) {\n cleanUpEvents();\n if (e.touches.length === 1 && !touchedRef.current) {\n touchedRef.current = true;\n touchYRef.current = Math.ceil(e.touches[0].pageY);\n elementRef.current = e.target;\n elementRef.current.addEventListener('touchmove', onTouchMove);\n elementRef.current.addEventListener('touchend', onTouchEnd);\n }\n };\n cleanUpEvents = function cleanUpEvents() {\n if (elementRef.current) {\n elementRef.current.removeEventListener('touchmove', onTouchMove);\n elementRef.current.removeEventListener('touchend', onTouchEnd);\n }\n };\n useLayoutEffect(function () {\n if (inVirtual) {\n listRef.current.addEventListener('touchstart', onTouchStart);\n }\n return function () {\n var _listRef$current;\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.removeEventListener('touchstart', onTouchStart);\n cleanUpEvents();\n clearInterval(intervalRef.current);\n };\n }, [inVirtual]);\n}","var MIN_SIZE = 20;\nexport function getSpinSize() {\n var containerSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var scrollRange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var baseSize = containerSize / scrollRange * 100;\n if (isNaN(baseSize)) {\n baseSize = 0;\n }\n baseSize = Math.max(baseSize, MIN_SIZE);\n baseSize = Math.min(baseSize, containerSize / 2);\n return Math.floor(baseSize);\n}","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;\n/* eslint-enable */","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"direction\", \"scrollWidth\", \"component\", \"onScroll\", \"onVirtualScroll\", \"onVisibleChange\", \"innerProps\", \"extraRender\"];\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport Filler from './Filler';\nimport ScrollBar from './ScrollBar';\nimport useChildren from './hooks/useChildren';\nimport useHeights from './hooks/useHeights';\nimport useScrollTo from './hooks/useScrollTo';\nimport useDiffItem from './hooks/useDiffItem';\nimport useFrameWheel from './hooks/useFrameWheel';\nimport useMobileTouchMove from './hooks/useMobileTouchMove';\nimport useOriginScroll from './hooks/useOriginScroll';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getSpinSize } from './utils/scrollbarUtil';\nimport { useEvent } from 'rc-util';\nimport { useGetSize } from './hooks/useGetSize';\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n overflowY: 'auto',\n overflowAnchor: 'none'\n};\nexport function RawList(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n className = props.className,\n height = props.height,\n itemHeight = props.itemHeight,\n _props$fullHeight = props.fullHeight,\n fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n style = props.style,\n data = props.data,\n children = props.children,\n itemKey = props.itemKey,\n virtual = props.virtual,\n direction = props.direction,\n scrollWidth = props.scrollWidth,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n onScroll = props.onScroll,\n onVirtualScroll = props.onVirtualScroll,\n onVisibleChange = props.onVisibleChange,\n innerProps = props.innerProps,\n extraRender = props.extraRender,\n restProps = _objectWithoutProperties(props, _excluded);\n // ================================= MISC =================================\n var useVirtual = !!(virtual !== false && height && itemHeight);\n var inVirtual = useVirtual && data && (itemHeight * data.length > height || !!scrollWidth);\n var isRTL = direction === 'rtl';\n var mergedClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), isRTL), className);\n var mergedData = data || EMPTY_DATA;\n var componentRef = useRef();\n var fillerInnerRef = useRef();\n // =============================== Item Key ===============================\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n offsetTop = _useState2[0],\n setOffsetTop = _useState2[1];\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n offsetLeft = _useState4[0],\n setOffsetLeft = _useState4[1];\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n scrollMoving = _useState6[0],\n setScrollMoving = _useState6[1];\n var onScrollbarStartMove = function onScrollbarStartMove() {\n setScrollMoving(true);\n };\n var onScrollbarStopMove = function onScrollbarStopMove() {\n setScrollMoving(false);\n };\n // =============================== Item Key ===============================\n var getKey = React.useCallback(function (item) {\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n return item === null || item === void 0 ? void 0 : item[itemKey];\n }, [itemKey]);\n var sharedConfig = {\n getKey: getKey\n };\n // ================================ Scroll ================================\n function syncScrollTop(newTop) {\n setOffsetTop(function (origin) {\n var value;\n if (typeof newTop === 'function') {\n value = newTop(origin);\n } else {\n value = newTop;\n }\n var alignedTop = keepInRange(value);\n componentRef.current.scrollTop = alignedTop;\n return alignedTop;\n });\n }\n // ================================ Legacy ================================\n // Put ref here since the range is generate by follow\n var rangeRef = useRef({\n start: 0,\n end: mergedData.length\n });\n var diffItemRef = useRef();\n var _useDiffItem = useDiffItem(mergedData, getKey),\n _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n diffItem = _useDiffItem2[0];\n diffItemRef.current = diffItem;\n // ================================ Height ================================\n var _useHeights = useHeights(getKey, null, null),\n _useHeights2 = _slicedToArray(_useHeights, 4),\n setInstanceRef = _useHeights2[0],\n collectHeight = _useHeights2[1],\n heights = _useHeights2[2],\n heightUpdatedMark = _useHeights2[3];\n // ========================== Visible Calculation =========================\n var _React$useMemo = React.useMemo(function () {\n if (!useVirtual) {\n return {\n scrollHeight: undefined,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n // Always use virtual scroll bar in avoid shaking\n if (!inVirtual) {\n var _fillerInnerRef$curre;\n return {\n scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n var itemTop = 0;\n var startIndex;\n var startOffset;\n var endIndex;\n var dataLen = mergedData.length;\n for (var i = 0; i < dataLen; i += 1) {\n var item = mergedData[i];\n var key = getKey(item);\n var cacheHeight = heights.get(key);\n var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n // Check item top in the range\n if (currentItemBottom >= offsetTop && startIndex === undefined) {\n startIndex = i;\n startOffset = itemTop;\n }\n // Check item bottom in the range. We will render additional one item for motion usage\n if (currentItemBottom > offsetTop + height && endIndex === undefined) {\n endIndex = i;\n }\n itemTop = currentItemBottom;\n }\n // When scrollTop at the end but data cut to small count will reach this\n if (startIndex === undefined) {\n startIndex = 0;\n startOffset = 0;\n endIndex = Math.ceil(height / itemHeight);\n }\n if (endIndex === undefined) {\n endIndex = mergedData.length - 1;\n }\n // Give cache to improve scroll experience\n endIndex = Math.min(endIndex + 1, mergedData.length - 1);\n return {\n scrollHeight: itemTop,\n start: startIndex,\n end: endIndex,\n offset: startOffset\n };\n }, [inVirtual, useVirtual, offsetTop, mergedData, heightUpdatedMark, height]),\n scrollHeight = _React$useMemo.scrollHeight,\n start = _React$useMemo.start,\n end = _React$useMemo.end,\n fillerOffset = _React$useMemo.offset;\n rangeRef.current.start = start;\n rangeRef.current.end = end;\n // ================================= Size =================================\n var _React$useState = React.useState({\n width: 0,\n height: height\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n size = _React$useState2[0],\n setSize = _React$useState2[1];\n var onHolderResize = function onHolderResize(sizeInfo) {\n setSize(sizeInfo);\n };\n // Hack on scrollbar to enable flash call\n var verticalScrollBarRef = useRef();\n var horizontalScrollBarRef = useRef();\n var horizontalScrollBarSpinSize = React.useMemo(function () {\n return getSpinSize(size.width, scrollWidth);\n }, [size.width, scrollWidth]);\n var verticalScrollBarSpinSize = React.useMemo(function () {\n return getSpinSize(size.height, scrollHeight);\n }, [size.height, scrollHeight]);\n // =============================== In Range ===============================\n var maxScrollHeight = scrollHeight - height;\n var maxScrollHeightRef = useRef(maxScrollHeight);\n maxScrollHeightRef.current = maxScrollHeight;\n function keepInRange(newScrollTop) {\n var newTop = newScrollTop;\n if (!Number.isNaN(maxScrollHeightRef.current)) {\n newTop = Math.min(newTop, maxScrollHeightRef.current);\n }\n newTop = Math.max(newTop, 0);\n return newTop;\n }\n var isScrollAtTop = offsetTop <= 0;\n var isScrollAtBottom = offsetTop >= maxScrollHeight;\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n // ================================ Scroll ================================\n var getVirtualScrollInfo = function getVirtualScrollInfo() {\n return {\n x: isRTL ? -offsetLeft : offsetLeft,\n y: offsetTop\n };\n };\n var lastVirtualScrollInfoRef = useRef(getVirtualScrollInfo());\n var triggerScroll = useEvent(function () {\n if (onVirtualScroll) {\n var nextInfo = getVirtualScrollInfo();\n // Trigger when offset changed\n if (lastVirtualScrollInfoRef.current.x !== nextInfo.x || lastVirtualScrollInfoRef.current.y !== nextInfo.y) {\n onVirtualScroll(nextInfo);\n lastVirtualScrollInfoRef.current = nextInfo;\n }\n }\n });\n function onScrollBar(newScrollOffset, horizontal) {\n var newOffset = newScrollOffset;\n if (horizontal) {\n flushSync(function () {\n setOffsetLeft(newOffset);\n });\n triggerScroll();\n } else {\n syncScrollTop(newOffset);\n }\n }\n // When data size reduce. It may trigger native scroll event back to fit scroll position\n function onFallbackScroll(e) {\n var newScrollTop = e.currentTarget.scrollTop;\n if (newScrollTop !== offsetTop) {\n syncScrollTop(newScrollTop);\n }\n // Trigger origin onScroll\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n triggerScroll();\n }\n var keepInHorizontalRange = function keepInHorizontalRange(nextOffsetLeft) {\n var tmpOffsetLeft = nextOffsetLeft;\n var max = scrollWidth - size.width;\n tmpOffsetLeft = Math.max(tmpOffsetLeft, 0);\n tmpOffsetLeft = Math.min(tmpOffsetLeft, max);\n return tmpOffsetLeft;\n };\n var onWheelDelta = useEvent(function (offsetXY, fromHorizontal) {\n if (fromHorizontal) {\n // Horizontal scroll no need sync virtual position\n flushSync(function () {\n setOffsetLeft(function (left) {\n var nextOffsetLeft = left + (isRTL ? -offsetXY : offsetXY);\n return keepInHorizontalRange(nextOffsetLeft);\n });\n });\n triggerScroll();\n } else {\n syncScrollTop(function (top) {\n var newTop = top + offsetXY;\n return newTop;\n });\n }\n });\n // Since this added in global,should use ref to keep update\n var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, !!scrollWidth, onWheelDelta),\n _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n onRawWheel = _useFrameWheel2[0],\n onFireFoxScroll = _useFrameWheel2[1];\n // Mobile touch move\n useMobileTouchMove(useVirtual, componentRef, function (deltaY, smoothOffset) {\n if (originScroll(deltaY, smoothOffset)) {\n return false;\n }\n onRawWheel({\n preventDefault: function preventDefault() {},\n deltaY: deltaY\n });\n return true;\n });\n useLayoutEffect(function () {\n // Firefox only\n function onMozMousePixelScroll(e) {\n if (useVirtual) {\n e.preventDefault();\n }\n }\n var componentEle = componentRef.current;\n componentEle.addEventListener('wheel', onRawWheel);\n componentEle.addEventListener('DOMMouseScroll', onFireFoxScroll);\n componentEle.addEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n return function () {\n componentEle.removeEventListener('wheel', onRawWheel);\n componentEle.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n componentEle.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n };\n }, [useVirtual]);\n // ================================= Ref ==================================\n var delayHideScrollBar = function delayHideScrollBar() {\n var _verticalScrollBarRef, _horizontalScrollBarR;\n (_verticalScrollBarRef = verticalScrollBarRef.current) === null || _verticalScrollBarRef === void 0 ? void 0 : _verticalScrollBarRef.delayHidden();\n (_horizontalScrollBarR = horizontalScrollBarRef.current) === null || _horizontalScrollBarR === void 0 ? void 0 : _horizontalScrollBarR.delayHidden();\n };\n var _scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, collectHeight, syncScrollTop, delayHideScrollBar);\n React.useImperativeHandle(ref, function () {\n return {\n getScrollInfo: getVirtualScrollInfo,\n scrollTo: function scrollTo(config) {\n function isPosScroll(arg) {\n return arg && _typeof(arg) === 'object' && ('left' in arg || 'top' in arg);\n }\n if (isPosScroll(config)) {\n // Scroll X\n if (config.left !== undefined) {\n setOffsetLeft(keepInHorizontalRange(config.left));\n }\n // Scroll Y\n _scrollTo(config.top);\n } else {\n _scrollTo(config);\n }\n }\n };\n });\n // ================================ Effect ================================\n /** We need told outside that some list not rendered */\n useLayoutEffect(function () {\n if (onVisibleChange) {\n var renderList = mergedData.slice(start, end + 1);\n onVisibleChange(renderList, mergedData);\n }\n }, [start, end, mergedData]);\n // ================================ Extra =================================\n var getSize = useGetSize(mergedData, getKey, heights, itemHeight);\n var extraContent = extraRender === null || extraRender === void 0 ? void 0 : extraRender({\n start: start,\n end: end,\n virtual: inVirtual,\n offsetX: offsetLeft,\n offsetY: fillerOffset,\n rtl: isRTL,\n getSize: getSize\n });\n // ================================ Render ================================\n var listChildren = useChildren(mergedData, start, end, scrollWidth, setInstanceRef, children, sharedConfig);\n var componentStyle = null;\n if (height) {\n componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n if (useVirtual) {\n componentStyle.overflowY = 'hidden';\n if (scrollWidth) {\n componentStyle.overflowX = 'hidden';\n }\n if (scrollMoving) {\n componentStyle.pointerEvents = 'none';\n }\n }\n }\n var containerProps = {};\n if (isRTL) {\n containerProps.dir = 'rtl';\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n style: _objectSpread(_objectSpread({}, style), {}, {\n position: 'relative'\n }),\n className: mergedClassName\n }, containerProps, restProps), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onHolderResize\n }, /*#__PURE__*/React.createElement(Component, {\n className: \"\".concat(prefixCls, \"-holder\"),\n style: componentStyle,\n ref: componentRef,\n onScroll: onFallbackScroll,\n onMouseEnter: delayHideScrollBar\n }, /*#__PURE__*/React.createElement(Filler, {\n prefixCls: prefixCls,\n height: scrollHeight,\n offsetX: offsetLeft,\n offsetY: fillerOffset,\n scrollWidth: scrollWidth,\n onInnerResize: collectHeight,\n ref: fillerInnerRef,\n innerProps: innerProps,\n rtl: isRTL,\n extra: extraContent\n }, listChildren))), inVirtual && scrollHeight > height && /*#__PURE__*/React.createElement(ScrollBar, {\n ref: verticalScrollBarRef,\n prefixCls: prefixCls,\n scrollOffset: offsetTop,\n scrollRange: scrollHeight,\n rtl: isRTL,\n onScroll: onScrollBar,\n onStartMove: onScrollbarStartMove,\n onStopMove: onScrollbarStopMove,\n spinSize: verticalScrollBarSpinSize,\n containerSize: size.height\n }), inVirtual && scrollWidth && /*#__PURE__*/React.createElement(ScrollBar, {\n ref: horizontalScrollBarRef,\n prefixCls: prefixCls,\n scrollOffset: offsetLeft,\n scrollRange: scrollWidth,\n rtl: isRTL,\n onScroll: onScrollBar,\n onStartMove: onScrollbarStartMove,\n onStopMove: onScrollbarStopMove,\n spinSize: horizontalScrollBarSpinSize,\n containerSize: size.width,\n horizontal: true\n }));\n}\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport raf from \"rc-util/es/raf\";\nimport CacheMap from '../utils/CacheMap';\nexport default function useHeights(getKey, onItemAdd, onItemRemove) {\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n updatedMark = _React$useState2[0],\n setUpdatedMark = _React$useState2[1];\n var instanceRef = useRef(new Map());\n var heightsRef = useRef(new CacheMap());\n var collectRafRef = useRef();\n function cancelRaf() {\n raf.cancel(collectRafRef.current);\n }\n function collectHeight() {\n cancelRaf();\n collectRafRef.current = raf(function () {\n instanceRef.current.forEach(function (element, key) {\n if (element && element.offsetParent) {\n var htmlElement = findDOMNode(element);\n var offsetHeight = htmlElement.offsetHeight;\n if (heightsRef.current.get(key) !== offsetHeight) {\n heightsRef.current.set(key, htmlElement.offsetHeight);\n }\n }\n });\n // Always trigger update mark to tell parent that should re-calculate heights when resized\n setUpdatedMark(function (c) {\n return c + 1;\n });\n });\n }\n function setInstanceRef(item, instance) {\n var key = getKey(item);\n var origin = instanceRef.current.get(key);\n if (instance) {\n instanceRef.current.set(key, instance);\n collectHeight();\n } else {\n instanceRef.current.delete(key);\n }\n // Instance changed\n if (!origin !== !instance) {\n if (instance) {\n onItemAdd === null || onItemAdd === void 0 ? void 0 : onItemAdd(item);\n } else {\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(item);\n }\n }\n }\n useEffect(function () {\n return cancelRaf;\n }, []);\n return [setInstanceRef, collectHeight, heightsRef.current, updatedMark];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHeight, syncScrollTop, triggerFlash) {\n var scrollRef = React.useRef();\n return function (arg) {\n // When not argument provided, we think dev may want to show the scrollbar\n if (arg === null || arg === undefined) {\n triggerFlash();\n return;\n }\n // Normal scroll logic\n raf.cancel(scrollRef.current);\n if (typeof arg === 'number') {\n syncScrollTop(arg);\n } else if (arg && _typeof(arg) === 'object') {\n var index;\n var align = arg.align;\n if ('index' in arg) {\n index = arg.index;\n } else {\n index = data.findIndex(function (item) {\n return getKey(item) === arg.key;\n });\n }\n var _arg$offset = arg.offset,\n offset = _arg$offset === void 0 ? 0 : _arg$offset;\n // We will retry 3 times in case dynamic height shaking\n var syncScroll = function syncScroll(times, targetAlign) {\n if (times < 0 || !containerRef.current) return;\n var height = containerRef.current.clientHeight;\n var needCollectHeight = false;\n var newTargetAlign = targetAlign;\n // Go to next frame if height not exist\n if (height) {\n var mergedAlign = targetAlign || align;\n // Get top & bottom\n var stackTop = 0;\n var itemTop = 0;\n var itemBottom = 0;\n var maxLen = Math.min(data.length, index);\n for (var i = 0; i <= maxLen; i += 1) {\n var key = getKey(data[i]);\n itemTop = stackTop;\n var cacheHeight = heights.get(key);\n itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n stackTop = itemBottom;\n if (i === index && cacheHeight === undefined) {\n needCollectHeight = true;\n }\n }\n // Scroll to\n var targetTop = null;\n switch (mergedAlign) {\n case 'top':\n targetTop = itemTop - offset;\n break;\n case 'bottom':\n targetTop = itemBottom - height + offset;\n break;\n default:\n {\n var scrollTop = containerRef.current.scrollTop;\n var scrollBottom = scrollTop + height;\n if (itemTop < scrollTop) {\n newTargetAlign = 'top';\n } else if (itemBottom > scrollBottom) {\n newTargetAlign = 'bottom';\n }\n }\n }\n if (targetTop !== null && targetTop !== containerRef.current.scrollTop) {\n syncScrollTop(targetTop);\n }\n }\n // We will retry since element may not sync height as it described\n scrollRef.current = raf(function () {\n if (needCollectHeight) {\n collectHeight();\n }\n syncScroll(times - 1, newTargetAlign);\n }, 2); // Delay 2 to wait for List collect heights\n };\n\n syncScroll(3);\n }\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Size info need loop query for the `heights` which will has the perf issue.\n * Let cache result for each render phase.\n */\nexport function useGetSize(mergedData, getKey, heights, itemHeight) {\n var _React$useMemo = React.useMemo(function () {\n return [new Map(), []];\n }, [mergedData, heights.id, itemHeight]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n key2Index = _React$useMemo2[0],\n bottomList = _React$useMemo2[1];\n var getSize = function getSize(startKey) {\n var endKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startKey;\n // Get from cache first\n var startIndex = key2Index.get(startKey);\n var endIndex = key2Index.get(endKey);\n // Loop to fill the cache\n if (startIndex === undefined || endIndex === undefined) {\n var dataLen = mergedData.length;\n for (var i = bottomList.length; i < dataLen; i += 1) {\n var _heights$get;\n var item = mergedData[i];\n var key = getKey(item);\n key2Index.set(key, i);\n var cacheHeight = (_heights$get = heights.get(key)) !== null && _heights$get !== void 0 ? _heights$get : itemHeight;\n bottomList[i] = (bottomList[i - 1] || 0) + cacheHeight;\n if (key === startKey) {\n startIndex = i;\n }\n if (key === endKey) {\n endIndex = i;\n }\n if (startIndex !== undefined && endIndex !== undefined) {\n break;\n }\n }\n }\n return {\n top: bottomList[startIndex - 1] || 0,\n bottom: bottomList[endIndex]\n };\n };\n return getSize;\n}","import * as React from 'react';\nimport { Item } from '../Item';\nexport default function useChildren(list, startIndex, endIndex, scrollWidth, setNodeRef, renderFunc, _ref) {\n var getKey = _ref.getKey;\n return list.slice(startIndex, endIndex + 1).map(function (item, index) {\n var eleIndex = startIndex + index;\n var node = renderFunc(item, eleIndex, {\n style: {\n width: scrollWidth\n }\n });\n var key = getKey(item);\n return /*#__PURE__*/React.createElement(Item, {\n key: key,\n setRef: function setRef(ele) {\n return setNodeRef(item, ele);\n }\n }, node);\n });\n}","import List from './List';\nexport default List;","import * as React from 'react';\n\n// Use any here since we do not get the type during compilation\n\nvar SelectContext = /*#__PURE__*/React.createContext(null);\nexport default SelectContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar _excluded = [\"disabled\", \"title\", \"children\", \"style\", \"className\"];\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport classNames from 'classnames';\nimport List from 'rc-virtual-list';\nimport TransBtn from \"./TransBtn\";\nimport { isPlatformMac } from \"./utils/platformUtil\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nimport SelectContext from \"./SelectContext\";\n\n// export interface OptionListProps {\n\nfunction isTitleType(content) {\n return typeof content === 'string' || typeof content === 'number';\n}\n\n/**\n * Using virtual list of option display.\n * Will fallback to dom if use customize render.\n */\nvar OptionList = function OptionList(_, ref) {\n var _useBaseProps = useBaseProps(),\n prefixCls = _useBaseProps.prefixCls,\n id = _useBaseProps.id,\n open = _useBaseProps.open,\n multiple = _useBaseProps.multiple,\n mode = _useBaseProps.mode,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n notFoundContent = _useBaseProps.notFoundContent,\n onPopupScroll = _useBaseProps.onPopupScroll;\n var _React$useContext = React.useContext(SelectContext),\n flattenOptions = _React$useContext.flattenOptions,\n onActiveValue = _React$useContext.onActiveValue,\n defaultActiveFirstOption = _React$useContext.defaultActiveFirstOption,\n onSelect = _React$useContext.onSelect,\n menuItemSelectedIcon = _React$useContext.menuItemSelectedIcon,\n rawValues = _React$useContext.rawValues,\n fieldNames = _React$useContext.fieldNames,\n virtual = _React$useContext.virtual,\n listHeight = _React$useContext.listHeight,\n listItemHeight = _React$useContext.listItemHeight;\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n var memoFlattenOptions = useMemo(function () {\n return flattenOptions;\n }, [open, flattenOptions], function (prev, next) {\n return next[0] && prev[1] !== next[1];\n });\n\n // =========================== List ===========================\n var listRef = React.useRef(null);\n var onListMouseDown = function onListMouseDown(event) {\n event.preventDefault();\n };\n var scrollIntoView = function scrollIntoView(args) {\n if (listRef.current) {\n listRef.current.scrollTo(typeof args === 'number' ? {\n index: args\n } : args);\n }\n };\n\n // ========================== Active ==========================\n var getEnabledActiveIndex = function getEnabledActiveIndex(index) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var len = memoFlattenOptions.length;\n for (var i = 0; i < len; i += 1) {\n var current = (index + i * offset + len) % len;\n var _memoFlattenOptions$c = memoFlattenOptions[current],\n group = _memoFlattenOptions$c.group,\n data = _memoFlattenOptions$c.data;\n if (!group && !data.disabled) {\n return current;\n }\n }\n return -1;\n };\n var _React$useState = React.useState(function () {\n return getEnabledActiveIndex(0);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n var setActive = function setActive(index) {\n var fromKeyboard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n setActiveIndex(index);\n var info = {\n source: fromKeyboard ? 'keyboard' : 'mouse'\n };\n\n // Trigger active event\n var flattenItem = memoFlattenOptions[index];\n if (!flattenItem) {\n onActiveValue(null, -1, info);\n return;\n }\n onActiveValue(flattenItem.value, index, info);\n };\n\n // Auto active first item when list length or searchValue changed\n useEffect(function () {\n setActive(defaultActiveFirstOption !== false ? getEnabledActiveIndex(0) : -1);\n }, [memoFlattenOptions.length, searchValue]);\n\n // https://github.com/ant-design/ant-design/issues/34975\n var isSelected = React.useCallback(function (value) {\n return rawValues.has(value) && mode !== 'combobox';\n }, [mode, _toConsumableArray(rawValues).toString(), rawValues.size]);\n\n // Auto scroll to item position in single mode\n useEffect(function () {\n /**\n * React will skip `onChange` when component update.\n * `setActive` function will call root accessibility state update which makes re-render.\n * So we need to delay to let Input component trigger onChange first.\n */\n var timeoutId = setTimeout(function () {\n if (!multiple && open && rawValues.size === 1) {\n var value = Array.from(rawValues)[0];\n var index = memoFlattenOptions.findIndex(function (_ref) {\n var data = _ref.data;\n return data.value === value;\n });\n if (index !== -1) {\n setActive(index);\n scrollIntoView(index);\n }\n }\n });\n\n // Force trigger scrollbar visible when open\n if (open) {\n var _listRef$current;\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(undefined);\n }\n return function () {\n return clearTimeout(timeoutId);\n };\n }, [open, searchValue]);\n\n // ========================== Values ==========================\n var onSelectValue = function onSelectValue(value) {\n if (value !== undefined) {\n onSelect(value, {\n selected: !rawValues.has(value)\n });\n }\n\n // Single mode should always close by select\n if (!multiple) {\n toggleOpen(false);\n }\n };\n\n // ========================= Keyboard =========================\n React.useImperativeHandle(ref, function () {\n return {\n onKeyDown: function onKeyDown(event) {\n var which = event.which,\n ctrlKey = event.ctrlKey;\n switch (which) {\n // >>> Arrow keys & ctrl + n/p on Mac\n case KeyCode.N:\n case KeyCode.P:\n case KeyCode.UP:\n case KeyCode.DOWN:\n {\n var offset = 0;\n if (which === KeyCode.UP) {\n offset = -1;\n } else if (which === KeyCode.DOWN) {\n offset = 1;\n } else if (isPlatformMac() && ctrlKey) {\n if (which === KeyCode.N) {\n offset = 1;\n } else if (which === KeyCode.P) {\n offset = -1;\n }\n }\n if (offset !== 0) {\n var nextActiveIndex = getEnabledActiveIndex(activeIndex + offset, offset);\n scrollIntoView(nextActiveIndex);\n setActive(nextActiveIndex, true);\n }\n break;\n }\n\n // >>> Select\n case KeyCode.ENTER:\n {\n // value\n var item = memoFlattenOptions[activeIndex];\n if (item && !item.data.disabled) {\n onSelectValue(item.value);\n } else {\n onSelectValue(undefined);\n }\n if (open) {\n event.preventDefault();\n }\n break;\n }\n\n // >>> Close\n case KeyCode.ESC:\n {\n toggleOpen(false);\n if (open) {\n event.stopPropagation();\n }\n }\n }\n },\n onKeyUp: function onKeyUp() {},\n scrollTo: function scrollTo(index) {\n scrollIntoView(index);\n }\n };\n });\n\n // ========================== Render ==========================\n if (memoFlattenOptions.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n className: \"\".concat(itemPrefixCls, \"-empty\"),\n onMouseDown: onListMouseDown\n }, notFoundContent);\n }\n var omitFieldNameList = Object.keys(fieldNames).map(function (key) {\n return fieldNames[key];\n });\n var getLabel = function getLabel(item) {\n return item.label;\n };\n var renderItem = function renderItem(index) {\n var item = memoFlattenOptions[index];\n if (!item) return null;\n var itemData = item.data || {};\n var value = itemData.value;\n var group = item.group;\n var attrs = pickAttrs(itemData, true);\n var mergedLabel = getLabel(item);\n return item ? /*#__PURE__*/React.createElement(\"div\", _extends({\n \"aria-label\": typeof mergedLabel === 'string' && !group ? mergedLabel : null\n }, attrs, {\n key: index,\n role: group ? 'presentation' : 'option',\n id: \"\".concat(id, \"_list_\").concat(index),\n \"aria-selected\": isSelected(value)\n }), value) : null;\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n style: {\n height: 0,\n width: 0,\n overflow: 'hidden'\n }\n }, renderItem(activeIndex - 1), renderItem(activeIndex), renderItem(activeIndex + 1)), /*#__PURE__*/React.createElement(List, {\n itemKey: \"key\",\n ref: listRef,\n data: memoFlattenOptions,\n height: listHeight,\n itemHeight: listItemHeight,\n fullHeight: false,\n onMouseDown: onListMouseDown,\n onScroll: onPopupScroll,\n virtual: virtual\n }, function (item, itemIndex) {\n var _classNames;\n var group = item.group,\n groupOption = item.groupOption,\n data = item.data,\n label = item.label,\n value = item.value;\n var key = data.key;\n\n // Group\n if (group) {\n var _data$title;\n var groupTitle = (_data$title = data.title) !== null && _data$title !== void 0 ? _data$title : isTitleType(label) ? label.toString() : undefined;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(itemPrefixCls, \"\".concat(itemPrefixCls, \"-group\")),\n title: groupTitle\n }, label !== undefined ? label : key);\n }\n var disabled = data.disabled,\n title = data.title,\n children = data.children,\n style = data.style,\n className = data.className,\n otherProps = _objectWithoutProperties(data, _excluded);\n var passedProps = omit(otherProps, omitFieldNameList);\n\n // Option\n var selected = isSelected(value);\n var optionPrefixCls = \"\".concat(itemPrefixCls, \"-option\");\n var optionClassName = classNames(itemPrefixCls, optionPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-grouped\"), groupOption), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-active\"), activeIndex === itemIndex && !disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-selected\"), selected), _classNames));\n var mergedLabel = getLabel(item);\n var iconVisible = !menuItemSelectedIcon || typeof menuItemSelectedIcon === 'function' || selected;\n\n // https://github.com/ant-design/ant-design/issues/34145\n var content = typeof mergedLabel === 'number' ? mergedLabel : mergedLabel || value;\n // https://github.com/ant-design/ant-design/issues/26717\n var optionTitle = isTitleType(content) ? content.toString() : undefined;\n if (title !== undefined) {\n optionTitle = title;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, pickAttrs(passedProps), {\n \"aria-selected\": selected,\n className: optionClassName,\n title: optionTitle,\n onMouseMove: function onMouseMove() {\n if (activeIndex === itemIndex || disabled) {\n return;\n }\n setActive(itemIndex);\n },\n onClick: function onClick() {\n if (!disabled) {\n onSelectValue(value);\n }\n },\n style: style\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(optionPrefixCls, \"-content\")\n }, content), /*#__PURE__*/React.isValidElement(menuItemSelectedIcon) || selected, iconVisible && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(itemPrefixCls, \"-option-state\"),\n customizeIcon: menuItemSelectedIcon,\n customizeIconProps: {\n isSelected: selected\n }\n }, selected ? '✓' : null));\n }));\n};\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;","/* istanbul ignore file */\nexport function isPlatformMac() {\n return /(mac\\sos|macintosh)/i.test(navigator.appVersion);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nexport default function omit(obj, fields) {\n var clone = _objectSpread({}, obj);\n if (Array.isArray(fields)) {\n fields.forEach(function (key) {\n delete clone[key];\n });\n }\n return clone;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toNodeArray from \"rc-util/es/Children/toArray\";\nimport warning, { noteOnce } from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { isMultiple } from \"../BaseSelect\";\nimport { toArray } from \"./commonUtil\";\nimport { convertChildrenToData } from \"./legacyUtil\";\nfunction warningProps(props) {\n var mode = props.mode,\n options = props.options,\n children = props.children,\n backfill = props.backfill,\n allowClear = props.allowClear,\n placeholder = props.placeholder,\n getInputElement = props.getInputElement,\n showSearch = props.showSearch,\n onSearch = props.onSearch,\n defaultOpen = props.defaultOpen,\n autoFocus = props.autoFocus,\n labelInValue = props.labelInValue,\n value = props.value,\n inputValue = props.inputValue,\n optionLabelProp = props.optionLabelProp;\n var multiple = isMultiple(mode);\n var mergedShowSearch = showSearch !== undefined ? showSearch : multiple || mode === 'combobox';\n var mergedOptions = options || convertChildrenToData(children);\n\n // `tags` should not set option as disabled\n warning(mode !== 'tags' || mergedOptions.every(function (opt) {\n return !opt.disabled;\n }), 'Please avoid setting option to disabled in tags mode since user can always type text as tag.');\n\n // `combobox` & `tags` should option be `string` type\n if (mode === 'tags' || mode === 'combobox') {\n var hasNumberValue = mergedOptions.some(function (item) {\n if (item.options) {\n return item.options.some(function (opt) {\n return typeof ('value' in opt ? opt.value : opt.key) === 'number';\n });\n }\n return typeof ('value' in item ? item.value : item.key) === 'number';\n });\n warning(!hasNumberValue, '`value` of Option should not use number type when `mode` is `tags` or `combobox`.');\n }\n\n // `combobox` should not use `optionLabelProp`\n warning(mode !== 'combobox' || !optionLabelProp, '`combobox` mode not support `optionLabelProp`. Please set `value` on Option directly.');\n\n // Only `combobox` support `backfill`\n warning(mode === 'combobox' || !backfill, '`backfill` only works with `combobox` mode.');\n\n // Only `combobox` support `getInputElement`\n warning(mode === 'combobox' || !getInputElement, '`getInputElement` only work with `combobox` mode.');\n\n // Customize `getInputElement` should not use `allowClear` & `placeholder`\n noteOnce(mode !== 'combobox' || !getInputElement || !allowClear || !placeholder, 'Customize `getInputElement` should customize clear and placeholder logic instead of configuring `allowClear` and `placeholder`.');\n\n // `onSearch` should use in `combobox` or `showSearch`\n if (onSearch && !mergedShowSearch && mode !== 'combobox' && mode !== 'tags') {\n warning(false, '`onSearch` should work with `showSearch` instead of use alone.');\n }\n noteOnce(!defaultOpen || autoFocus, '`defaultOpen` makes Select open without focus which means it will not close by click outside. You can set `autoFocus` if needed.');\n if (value !== undefined && value !== null) {\n var values = toArray(value);\n warning(!labelInValue || values.every(function (val) {\n return _typeof(val) === 'object' && ('key' in val || 'value' in val);\n }), '`value` should in shape of `{ value: string | number, label?: ReactNode }` when you set `labelInValue` to `true`');\n warning(!multiple || Array.isArray(value), '`value` should be array when `mode` is `multiple` or `tags`');\n }\n\n // Syntactic sugar should use correct children type\n if (children) {\n var invalidateChildType = null;\n toNodeArray(children).some(function (node) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return false;\n }\n var _ref = node,\n type = _ref.type;\n if (type.isSelectOption) {\n return false;\n }\n if (type.isSelectOptGroup) {\n var allChildrenValid = toNodeArray(node.props.children).every(function (subNode) {\n if (! /*#__PURE__*/React.isValidElement(subNode) || !node.type || subNode.type.isSelectOption) {\n return true;\n }\n invalidateChildType = subNode.type;\n return false;\n });\n if (allChildrenValid) {\n return false;\n }\n return true;\n }\n invalidateChildType = type;\n return true;\n });\n if (invalidateChildType) {\n warning(false, \"`children` should be `Select.Option` or `Select.OptGroup` instead of `\".concat(invalidateChildType.displayName || invalidateChildType.name || invalidateChildType, \"`.\"));\n }\n warning(inputValue === undefined, '`inputValue` is deprecated, please use `searchValue` instead.');\n }\n}\n\n// value in Select option should not be null\n// note: OptGroup has options too\nexport function warningNullOptions(options, fieldNames) {\n if (options) {\n var recursiveOptions = function recursiveOptions(optionsList) {\n var inGroup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n for (var i = 0; i < optionsList.length; i++) {\n var option = optionsList[i];\n if (option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value] === null) {\n warning(false, '`value` in Select options should not be `null`.');\n return true;\n }\n if (!inGroup && Array.isArray(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.options]) && recursiveOptions(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.options], true)) {\n break;\n }\n }\n };\n recursiveOptions(options);\n }\n}\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"mode\", \"prefixCls\", \"backfill\", \"fieldNames\", \"inputValue\", \"searchValue\", \"onSearch\", \"autoClearSearchValue\", \"onSelect\", \"onDeselect\", \"dropdownMatchSelectWidth\", \"filterOption\", \"filterSort\", \"optionFilterProp\", \"optionLabelProp\", \"options\", \"children\", \"defaultActiveFirstOption\", \"menuItemSelectedIcon\", \"virtual\", \"listHeight\", \"listItemHeight\", \"value\", \"defaultValue\", \"labelInValue\", \"onChange\"];\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n *\n * New api:\n * - listHeight\n * - listItemHeight\n * - component\n *\n * Remove deprecated api:\n * - multiple\n * - tags\n * - combobox\n * - firstActiveValue\n * - dropdownMenuStyle\n * - openClassName (Not list in api)\n *\n * Update:\n * - `backfill` only support `combobox` mode\n * - `combobox` mode not support `labelInValue` since it's meaningless\n * - `getInputElement` only support `combobox` mode\n * - `onChange` return OptionData instead of ReactNode\n * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode\n * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option\n * - `combobox` mode not support `optionLabelProp`\n */\n\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport BaseSelect, { isMultiple } from \"./BaseSelect\";\nimport useCache from \"./hooks/useCache\";\nimport useFilterOptions from \"./hooks/useFilterOptions\";\nimport useId from \"./hooks/useId\";\nimport useOptions from \"./hooks/useOptions\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport OptGroup from \"./OptGroup\";\nimport Option from \"./Option\";\nimport OptionList from \"./OptionList\";\nimport SelectContext from \"./SelectContext\";\nimport { hasValue, toArray } from \"./utils/commonUtil\";\nimport { fillFieldNames, flattenOptions, injectPropsWithOption } from \"./utils/valueUtil\";\nimport warningProps, { warningNullOptions } from \"./utils/warningPropsUtil\";\nvar OMIT_DOM_PROPS = ['inputValue'];\nfunction isRawValue(value) {\n return !value || _typeof(value) !== 'object';\n}\nvar Select = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n mode = props.mode,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-select' : _props$prefixCls,\n backfill = props.backfill,\n fieldNames = props.fieldNames,\n inputValue = props.inputValue,\n searchValue = props.searchValue,\n onSearch = props.onSearch,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n filterOption = props.filterOption,\n filterSort = props.filterSort,\n optionFilterProp = props.optionFilterProp,\n optionLabelProp = props.optionLabelProp,\n options = props.options,\n children = props.children,\n defaultActiveFirstOption = props.defaultActiveFirstOption,\n menuItemSelectedIcon = props.menuItemSelectedIcon,\n virtual = props.virtual,\n _props$listHeight = props.listHeight,\n listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n _props$listItemHeight = props.listItemHeight,\n listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n value = props.value,\n defaultValue = props.defaultValue,\n labelInValue = props.labelInValue,\n onChange = props.onChange,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedId = useId(id);\n var multiple = isMultiple(mode);\n var childrenAsData = !!(!options && children);\n var mergedFilterOption = React.useMemo(function () {\n if (filterOption === undefined && mode === 'combobox') {\n return false;\n }\n return filterOption;\n }, [filterOption, mode]);\n\n // ========================= FieldNames =========================\n var mergedFieldNames = React.useMemo(function () {\n return fillFieldNames(fieldNames, childrenAsData);\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [\n // We stringify fieldNames to avoid unnecessary re-renders.\n JSON.stringify(fieldNames), childrenAsData]\n /* eslint-enable react-hooks/exhaustive-deps */);\n\n // =========================== Search ===========================\n var _useMergedState = useMergedState('', {\n value: searchValue !== undefined ? searchValue : inputValue,\n postState: function postState(search) {\n return search || '';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedSearchValue = _useMergedState2[0],\n setSearchValue = _useMergedState2[1];\n\n // =========================== Option ===========================\n var parsedOptions = useOptions(options, children, mergedFieldNames, optionFilterProp, optionLabelProp);\n var valueOptions = parsedOptions.valueOptions,\n labelOptions = parsedOptions.labelOptions,\n mergedOptions = parsedOptions.options;\n\n // ========================= Wrap Value =========================\n var convert2LabelValues = React.useCallback(function (draftValues) {\n // Convert to array\n var valueList = toArray(draftValues);\n\n // Convert to labelInValue type\n return valueList.map(function (val) {\n var rawValue;\n var rawLabel;\n var rawKey;\n var rawDisabled;\n var rawTitle;\n\n // Fill label & value\n if (isRawValue(val)) {\n rawValue = val;\n } else {\n var _val$value;\n rawKey = val.key;\n rawLabel = val.label;\n rawValue = (_val$value = val.value) !== null && _val$value !== void 0 ? _val$value : rawKey;\n }\n var option = valueOptions.get(rawValue);\n if (option) {\n var _option$key;\n // Fill missing props\n if (rawLabel === undefined) rawLabel = option === null || option === void 0 ? void 0 : option[optionLabelProp || mergedFieldNames.label];\n if (rawKey === undefined) rawKey = (_option$key = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key !== void 0 ? _option$key : rawValue;\n rawDisabled = option === null || option === void 0 ? void 0 : option.disabled;\n rawTitle = option === null || option === void 0 ? void 0 : option.title;\n\n // Warning if label not same as provided\n if (process.env.NODE_ENV !== 'production' && !optionLabelProp) {\n var optionLabel = option === null || option === void 0 ? void 0 : option[mergedFieldNames.label];\n if (optionLabel !== undefined && ! /*#__PURE__*/React.isValidElement(optionLabel) && ! /*#__PURE__*/React.isValidElement(rawLabel) && optionLabel !== rawLabel) {\n warning(false, '`label` of `value` is not same as `label` in Select options.');\n }\n }\n }\n return {\n label: rawLabel,\n value: rawValue,\n key: rawKey,\n disabled: rawDisabled,\n title: rawTitle\n };\n });\n }, [mergedFieldNames, optionLabelProp, valueOptions]);\n\n // =========================== Values ===========================\n var _useMergedState3 = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n internalValue = _useMergedState4[0],\n setInternalValue = _useMergedState4[1];\n\n // Merged value with LabelValueType\n var rawLabeledValues = React.useMemo(function () {\n var _values$;\n var values = convert2LabelValues(internalValue);\n\n // combobox no need save value when it's no value\n if (mode === 'combobox' && !((_values$ = values[0]) !== null && _values$ !== void 0 && _values$.value)) {\n return [];\n }\n return values;\n }, [internalValue, convert2LabelValues, mode]);\n\n // Fill label with cache to avoid option remove\n var _useCache = useCache(rawLabeledValues, valueOptions),\n _useCache2 = _slicedToArray(_useCache, 2),\n mergedValues = _useCache2[0],\n getMixedOption = _useCache2[1];\n var displayValues = React.useMemo(function () {\n // `null` need show as placeholder instead\n // https://github.com/ant-design/ant-design/issues/25057\n if (!mode && mergedValues.length === 1) {\n var firstValue = mergedValues[0];\n if (firstValue.value === null && (firstValue.label === null || firstValue.label === undefined)) {\n return [];\n }\n }\n return mergedValues.map(function (item) {\n var _item$label;\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : item.value\n });\n });\n }, [mode, mergedValues]);\n\n /** Convert `displayValues` to raw value type set */\n var rawValues = React.useMemo(function () {\n return new Set(mergedValues.map(function (val) {\n return val.value;\n }));\n }, [mergedValues]);\n React.useEffect(function () {\n if (mode === 'combobox') {\n var _mergedValues$;\n var strValue = (_mergedValues$ = mergedValues[0]) === null || _mergedValues$ === void 0 ? void 0 : _mergedValues$.value;\n setSearchValue(hasValue(strValue) ? String(strValue) : '');\n }\n }, [mergedValues]);\n\n // ======================= Display Option =======================\n // Create a placeholder item if not exist in `options`\n var createTagOption = useRefFunc(function (val, label) {\n var _ref;\n var mergedLabel = label !== null && label !== void 0 ? label : val;\n return _ref = {}, _defineProperty(_ref, mergedFieldNames.value, val), _defineProperty(_ref, mergedFieldNames.label, mergedLabel), _ref;\n });\n\n // Fill tag as option if mode is `tags`\n var filledTagOptions = React.useMemo(function () {\n if (mode !== 'tags') {\n return mergedOptions;\n }\n\n // >>> Tag mode\n var cloneOptions = _toConsumableArray(mergedOptions);\n\n // Check if value exist in options (include new patch item)\n var existOptions = function existOptions(val) {\n return valueOptions.has(val);\n };\n\n // Fill current value as option\n _toConsumableArray(mergedValues).sort(function (a, b) {\n return a.value < b.value ? -1 : 1;\n }).forEach(function (item) {\n var val = item.value;\n if (!existOptions(val)) {\n cloneOptions.push(createTagOption(val, item.label));\n }\n });\n return cloneOptions;\n }, [createTagOption, mergedOptions, valueOptions, mergedValues, mode]);\n var filteredOptions = useFilterOptions(filledTagOptions, mergedFieldNames, mergedSearchValue, mergedFilterOption, optionFilterProp);\n\n // Fill options with search value if needed\n var filledSearchOptions = React.useMemo(function () {\n if (mode !== 'tags' || !mergedSearchValue || filteredOptions.some(function (item) {\n return item[optionFilterProp || 'value'] === mergedSearchValue;\n })) {\n return filteredOptions;\n }\n\n // Fill search value as option\n return [createTagOption(mergedSearchValue)].concat(_toConsumableArray(filteredOptions));\n }, [createTagOption, optionFilterProp, mode, filteredOptions, mergedSearchValue]);\n var orderedFilteredOptions = React.useMemo(function () {\n if (!filterSort) {\n return filledSearchOptions;\n }\n return _toConsumableArray(filledSearchOptions).sort(function (a, b) {\n return filterSort(a, b);\n });\n }, [filledSearchOptions, filterSort]);\n var displayOptions = React.useMemo(function () {\n return flattenOptions(orderedFilteredOptions, {\n fieldNames: mergedFieldNames,\n childrenAsData: childrenAsData\n });\n }, [orderedFilteredOptions, mergedFieldNames, childrenAsData]);\n\n // =========================== Change ===========================\n var triggerChange = function triggerChange(values) {\n var labeledValues = convert2LabelValues(values);\n setInternalValue(labeledValues);\n if (onChange && (\n // Trigger event only when value changed\n labeledValues.length !== mergedValues.length || labeledValues.some(function (newVal, index) {\n var _mergedValues$index;\n return ((_mergedValues$index = mergedValues[index]) === null || _mergedValues$index === void 0 ? void 0 : _mergedValues$index.value) !== (newVal === null || newVal === void 0 ? void 0 : newVal.value);\n }))) {\n var returnValues = labelInValue ? labeledValues : labeledValues.map(function (v) {\n return v.value;\n });\n var returnOptions = labeledValues.map(function (v) {\n return injectPropsWithOption(getMixedOption(v.value));\n });\n onChange(\n // Value\n multiple ? returnValues : returnValues[0],\n // Option\n multiple ? returnOptions : returnOptions[0]);\n }\n };\n\n // ======================= Accessibility ========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeValue = _React$useState2[0],\n setActiveValue = _React$useState2[1];\n var _React$useState3 = React.useState(0),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n accessibilityIndex = _React$useState4[0],\n setAccessibilityIndex = _React$useState4[1];\n var mergedDefaultActiveFirstOption = defaultActiveFirstOption !== undefined ? defaultActiveFirstOption : mode !== 'combobox';\n var onActiveValue = React.useCallback(function (active, index) {\n var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref2$source = _ref2.source,\n source = _ref2$source === void 0 ? 'keyboard' : _ref2$source;\n setAccessibilityIndex(index);\n if (backfill && mode === 'combobox' && active !== null && source === 'keyboard') {\n setActiveValue(String(active));\n }\n }, [backfill, mode]);\n\n // ========================= OptionList =========================\n var triggerSelect = function triggerSelect(val, selected, type) {\n var getSelectEnt = function getSelectEnt() {\n var _option$key2;\n var option = getMixedOption(val);\n return [labelInValue ? {\n label: option === null || option === void 0 ? void 0 : option[mergedFieldNames.label],\n value: val,\n key: (_option$key2 = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key2 !== void 0 ? _option$key2 : val\n } : val, injectPropsWithOption(option)];\n };\n if (selected && onSelect) {\n var _getSelectEnt = getSelectEnt(),\n _getSelectEnt2 = _slicedToArray(_getSelectEnt, 2),\n wrappedValue = _getSelectEnt2[0],\n _option = _getSelectEnt2[1];\n onSelect(wrappedValue, _option);\n } else if (!selected && onDeselect && type !== 'clear') {\n var _getSelectEnt3 = getSelectEnt(),\n _getSelectEnt4 = _slicedToArray(_getSelectEnt3, 2),\n _wrappedValue = _getSelectEnt4[0],\n _option2 = _getSelectEnt4[1];\n onDeselect(_wrappedValue, _option2);\n }\n };\n\n // Used for OptionList selection\n var onInternalSelect = useRefFunc(function (val, info) {\n var cloneValues;\n\n // Single mode always trigger select only with option list\n var mergedSelect = multiple ? info.selected : true;\n if (mergedSelect) {\n cloneValues = multiple ? [].concat(_toConsumableArray(mergedValues), [val]) : [val];\n } else {\n cloneValues = mergedValues.filter(function (v) {\n return v.value !== val;\n });\n }\n triggerChange(cloneValues);\n triggerSelect(val, mergedSelect);\n\n // Clean search value if single or configured\n if (mode === 'combobox') {\n // setSearchValue(String(val));\n setActiveValue('');\n } else if (!isMultiple || autoClearSearchValue) {\n setSearchValue('');\n setActiveValue('');\n }\n });\n\n // ======================= Display Change =======================\n // BaseSelect display values change\n var onDisplayValuesChange = function onDisplayValuesChange(nextValues, info) {\n triggerChange(nextValues);\n var type = info.type,\n values = info.values;\n if (type === 'remove' || type === 'clear') {\n values.forEach(function (item) {\n triggerSelect(item.value, false, type);\n });\n }\n };\n\n // =========================== Search ===========================\n var onInternalSearch = function onInternalSearch(searchText, info) {\n setSearchValue(searchText);\n setActiveValue(null);\n\n // [Submit] Tag mode should flush input\n if (info.source === 'submit') {\n var formatted = (searchText || '').trim();\n // prevent empty tags from appearing when you click the Enter button\n if (formatted) {\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), [formatted])));\n triggerChange(newRawValues);\n triggerSelect(formatted, true);\n setSearchValue('');\n }\n return;\n }\n if (info.source !== 'blur') {\n if (mode === 'combobox') {\n triggerChange(searchText);\n }\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchText);\n }\n };\n var onInternalSearchSplit = function onInternalSearchSplit(words) {\n var patchValues = words;\n if (mode !== 'tags') {\n patchValues = words.map(function (word) {\n var opt = labelOptions.get(word);\n return opt === null || opt === void 0 ? void 0 : opt.value;\n }).filter(function (val) {\n return val !== undefined;\n });\n }\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), _toConsumableArray(patchValues))));\n triggerChange(newRawValues);\n newRawValues.forEach(function (newRawValue) {\n triggerSelect(newRawValue, true);\n });\n };\n\n // ========================== Context ===========================\n var selectContext = React.useMemo(function () {\n var realVirtual = virtual !== false && dropdownMatchSelectWidth !== false;\n return _objectSpread(_objectSpread({}, parsedOptions), {}, {\n flattenOptions: displayOptions,\n onActiveValue: onActiveValue,\n defaultActiveFirstOption: mergedDefaultActiveFirstOption,\n onSelect: onInternalSelect,\n menuItemSelectedIcon: menuItemSelectedIcon,\n rawValues: rawValues,\n fieldNames: mergedFieldNames,\n virtual: realVirtual,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n childrenAsData: childrenAsData\n });\n }, [parsedOptions, displayOptions, onActiveValue, mergedDefaultActiveFirstOption, onInternalSelect, menuItemSelectedIcon, rawValues, mergedFieldNames, virtual, dropdownMatchSelectWidth, listHeight, listItemHeight, childrenAsData]);\n\n // ========================== Warning ===========================\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props);\n warningNullOptions(mergedOptions, mergedFieldNames);\n }\n\n // ==============================================================\n // == Render ==\n // ==============================================================\n return /*#__PURE__*/React.createElement(SelectContext.Provider, {\n value: selectContext\n }, /*#__PURE__*/React.createElement(BaseSelect, _extends({}, restProps, {\n // >>> MISC\n id: mergedId,\n prefixCls: prefixCls,\n ref: ref,\n omitDomProps: OMIT_DOM_PROPS,\n mode: mode\n // >>> Values\n ,\n displayValues: displayValues,\n onDisplayValuesChange: onDisplayValuesChange\n // >>> Search\n ,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n autoClearSearchValue: autoClearSearchValue,\n onSearchSplit: onInternalSearchSplit,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n // >>> OptionList\n ,\n OptionList: OptionList,\n emptyOptions: !displayOptions.length\n // >>> Accessibility\n ,\n activeValue: activeValue,\n activeDescendantId: \"\".concat(mergedId, \"_list_\").concat(accessibilityIndex)\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Select.displayName = 'Select';\n}\nvar TypedSelect = Select;\nTypedSelect.Option = Option;\nTypedSelect.OptGroup = OptGroup;\nexport default TypedSelect;","import * as React from 'react';\nimport { convertChildrenToData } from \"../utils/legacyUtil\";\n\n/**\n * Parse `children` to `options` if `options` is not provided.\n * Then flatten the `options`.\n */\nexport default function useOptions(options, children, fieldNames, optionFilterProp, optionLabelProp) {\n return React.useMemo(function () {\n var mergedOptions = options;\n var childrenAsData = !options;\n if (childrenAsData) {\n mergedOptions = convertChildrenToData(children);\n }\n var valueOptions = new Map();\n var labelOptions = new Map();\n var setLabelOptions = function setLabelOptions(labelOptionsMap, option, key) {\n if (key && typeof key === 'string') {\n labelOptionsMap.set(option[key], option);\n }\n };\n function dig(optionList) {\n var isChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n // for loop to speed up collection speed\n for (var i = 0; i < optionList.length; i += 1) {\n var option = optionList[i];\n if (!option[fieldNames.options] || isChildren) {\n valueOptions.set(option[fieldNames.value], option);\n setLabelOptions(labelOptions, option, fieldNames.label);\n // https://github.com/ant-design/ant-design/issues/35304\n setLabelOptions(labelOptions, option, optionFilterProp);\n setLabelOptions(labelOptions, option, optionLabelProp);\n } else {\n dig(option[fieldNames.options], true);\n }\n }\n }\n dig(mergedOptions);\n return {\n options: mergedOptions,\n valueOptions: valueOptions,\n labelOptions: labelOptions\n };\n }, [options, children, fieldNames, optionFilterProp, optionLabelProp]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\n/**\n * Cache `value` related LabeledValue & options.\n */\nexport default (function (labeledValues, valueOptions) {\n var cacheRef = React.useRef({\n values: new Map(),\n options: new Map()\n });\n var filledLabeledValues = React.useMemo(function () {\n var _cacheRef$current = cacheRef.current,\n prevValueCache = _cacheRef$current.values,\n prevOptionCache = _cacheRef$current.options;\n\n // Fill label by cache\n var patchedValues = labeledValues.map(function (item) {\n if (item.label === undefined) {\n var _prevValueCache$get;\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_prevValueCache$get = prevValueCache.get(item.value)) === null || _prevValueCache$get === void 0 ? void 0 : _prevValueCache$get.label\n });\n }\n return item;\n });\n\n // Refresh cache\n var valueCache = new Map();\n var optionCache = new Map();\n patchedValues.forEach(function (item) {\n valueCache.set(item.value, item);\n optionCache.set(item.value, valueOptions.get(item.value) || prevOptionCache.get(item.value));\n });\n cacheRef.current.values = valueCache;\n cacheRef.current.options = optionCache;\n return patchedValues;\n }, [labeledValues, valueOptions]);\n var getOption = React.useCallback(function (val) {\n return valueOptions.get(val) || cacheRef.current.options.get(val);\n }, [valueOptions]);\n return [filledLabeledValues, getOption];\n});","import Select from \"./Select\";\nimport Option from \"./Option\";\nimport OptGroup from \"./OptGroup\";\nimport BaseSelect from \"./BaseSelect\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nexport { Option, OptGroup, BaseSelect, useBaseProps };\nexport default Select;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar Empty = function Empty() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('empty-img-default');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"184\",\n height: \"152\",\n viewBox: \"0 0 184 152\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(24 31.67)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"67.797\",\n cy: \"106.89\",\n rx: \"67.797\",\n ry: \"12.668\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-1\"),\n d: \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-2\"),\n d: \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n transform: \"translate(13.56)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-3\"),\n d: \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-4\"),\n d: \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-5\"),\n d: \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n transform: \"translate(149.65 15.383)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: \"20.654\",\n cy: \"3.167\",\n rx: \"2.849\",\n ry: \"2.815\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n }))));\n};\nexport default Empty;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar Simple = function Simple() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('empty-img-simple');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"64\",\n height: \"41\",\n viewBox: \"0 0 64 41\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 1)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"32\",\n cy: \"33\",\n rx: \"32\",\n ry: \"7\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n className: \"\".concat(prefixCls, \"-path\")\n }))));\n};\nexport default Simple;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nvar defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);\nvar simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);\nvar Empty = function Empty(_a) {\n var className = _a.className,\n customizePrefixCls = _a.prefixCls,\n _a$image = _a.image,\n image = _a$image === void 0 ? defaultEmptyImg : _a$image,\n description = _a.description,\n children = _a.children,\n imageStyle = _a.imageStyle,\n restProps = __rest(_a, [\"className\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Empty\"\n }, function (contextLocale) {\n var _classNames;\n var prefixCls = getPrefixCls('empty', customizePrefixCls);\n var des = typeof description !== 'undefined' ? description : contextLocale.description;\n var alt = typeof des === 'string' ? des : 'empty';\n var imageNode = null;\n if (typeof image === 'string') {\n imageNode = /*#__PURE__*/React.createElement(\"img\", {\n alt: alt,\n src: image\n });\n } else {\n imageNode = image;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-normal\"), image === simpleEmptyImg), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className)\n }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-image\"),\n style: imageStyle\n }, imageNode), des && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, des), children && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, children));\n });\n};\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nexport default Empty;","import * as React from 'react';\nimport { ConfigConsumer } from '.';\nimport Empty from '../empty';\nvar defaultRenderEmpty = function defaultRenderEmpty(componentName) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('empty');\n switch (componentName) {\n case 'Table':\n case 'List':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE\n });\n case 'Select':\n case 'TreeSelect':\n case 'Cascader':\n case 'Transfer':\n case 'Mentions':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n className: \"\".concat(prefix, \"-small\")\n });\n /* istanbul ignore next */\n default:\n // Should never hit if we take all the component into consider.\n return /*#__PURE__*/React.createElement(Empty, null);\n }\n });\n};\nexport default defaultRenderEmpty;","// This icon file is generated automatically.\nvar CheckOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" } }] }, \"name\": \"check\", \"theme\": \"outlined\" };\nexport default CheckOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CheckOutlined = function CheckOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckOutlinedSvg\n }));\n};\nCheckOutlined.displayName = 'CheckOutlined';\nexport default /*#__PURE__*/React.forwardRef(CheckOutlined);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// TODO: 4.0 - codemod should help to change `filterOption` to support node props.\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcSelect, { OptGroup, Option } from 'rc-select';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport defaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext } from '../form/context';\nimport { getTransitionDirection, getTransitionName } from '../_util/motion';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport getIcons from './utils/iconUtil';\nimport warning from '../_util/warning';\nimport { useCompactItemContext } from '../space/Compact';\nvar SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\nvar InternalSelect = function InternalSelect(_a, ref) {\n var _classNames2;\n var customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? true : _a$bordered,\n className = _a.className,\n getPopupContainer = _a.getPopupContainer,\n dropdownClassName = _a.dropdownClassName,\n popupClassName = _a.popupClassName,\n _a$listHeight = _a.listHeight,\n listHeight = _a$listHeight === void 0 ? 256 : _a$listHeight,\n placement = _a.placement,\n _a$listItemHeight = _a.listItemHeight,\n listItemHeight = _a$listItemHeight === void 0 ? 24 : _a$listItemHeight,\n customizeSize = _a.size,\n customDisabled = _a.disabled,\n notFoundContent = _a.notFoundContent,\n customStatus = _a.status,\n showArrow = _a.showArrow,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"className\", \"getPopupContainer\", \"dropdownClassName\", \"popupClassName\", \"listHeight\", \"placement\", \"listItemHeight\", \"size\", \"disabled\", \"notFoundContent\", \"status\", \"showArrow\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction,\n virtual = _React$useContext.virtual,\n dropdownMatchSelectWidth = _React$useContext.dropdownMatchSelectWidth;\n var size = React.useContext(SizeContext);\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var mode = React.useMemo(function () {\n var m = props.mode;\n if (m === 'combobox') {\n return undefined;\n }\n if (m === SECRET_COMBOBOX_MODE_DO_NOT_USE) {\n return 'combobox';\n }\n return m;\n }, [props.mode]);\n var isMultiple = mode === 'multiple' || mode === 'tags';\n var mergedShowArrow = showArrow !== undefined ? showArrow : props.loading || !(isMultiple || mode === 'combobox');\n // =================== Warning =====================\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'Select', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.') : void 0;\n // ===================== Form Status =====================\n var _useContext = useContext(FormItemInputContext),\n contextStatus = _useContext.status,\n hasFeedback = _useContext.hasFeedback,\n isFormItemInput = _useContext.isFormItemInput,\n feedbackIcon = _useContext.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Empty =====================\n var mergedNotFound;\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else if (mode === 'combobox') {\n mergedNotFound = null;\n } else {\n mergedNotFound = (renderEmpty || defaultRenderEmpty)('Select');\n }\n // ===================== Icons =====================\n var _getIcons = getIcons(_extends(_extends({}, props), {\n multiple: isMultiple,\n hasFeedback: hasFeedback,\n feedbackIcon: feedbackIcon,\n showArrow: mergedShowArrow,\n prefixCls: prefixCls\n })),\n suffixIcon = _getIcons.suffixIcon,\n itemIcon = _getIcons.itemIcon,\n removeIcon = _getIcons.removeIcon,\n clearIcon = _getIcons.clearIcon;\n var selectProps = omit(props, ['suffixIcon', 'itemIcon']);\n var rcSelectRtlDropdownClassName = classNames(popupClassName || dropdownClassName, _defineProperty({}, \"\".concat(prefixCls, \"-dropdown-\").concat(direction), direction === 'rtl'));\n var mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var mergedClassName = classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-borderless\"), !bordered), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-in-form-item\"), isFormItemInput), _classNames2), getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, className);\n // ===================== Placement =====================\n var getPlacement = function getPlacement() {\n if (placement !== undefined) {\n return placement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n return /*#__PURE__*/React.createElement(RcSelect, _extends({\n ref: ref,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n }, selectProps, {\n transitionName: getTransitionName(rootPrefixCls, getTransitionDirection(placement), props.transitionName),\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n mode: mode,\n prefixCls: prefixCls,\n placement: getPlacement(),\n direction: direction,\n inputIcon: suffixIcon,\n menuItemSelectedIcon: itemIcon,\n removeIcon: removeIcon,\n clearIcon: clearIcon,\n notFoundContent: mergedNotFound,\n className: mergedClassName,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n dropdownClassName: rcSelectRtlDropdownClassName,\n showArrow: hasFeedback || showArrow,\n disabled: mergedDisabled\n }));\n};\nvar Select = /*#__PURE__*/React.forwardRef(InternalSelect);\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = SECRET_COMBOBOX_MODE_DO_NOT_USE;\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nexport default Select;","import CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport * as React from 'react';\nexport default function getIcons(_ref) {\n var suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n menuItemSelectedIcon = _ref.menuItemSelectedIcon,\n removeIcon = _ref.removeIcon,\n loading = _ref.loading,\n multiple = _ref.multiple,\n hasFeedback = _ref.hasFeedback,\n prefixCls = _ref.prefixCls,\n showArrow = _ref.showArrow,\n feedbackIcon = _ref.feedbackIcon;\n // Clear Icon\n var mergedClearIcon = clearIcon !== null && clearIcon !== void 0 ? clearIcon : /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n // Validation Feedback Icon\n var getSuffixIconNode = function getSuffixIconNode(arrowIcon) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, showArrow !== false && arrowIcon, hasFeedback && feedbackIcon);\n };\n // Arrow item icon\n var mergedSuffixIcon = null;\n if (suffixIcon !== undefined) {\n mergedSuffixIcon = getSuffixIconNode(suffixIcon);\n } else if (loading) {\n mergedSuffixIcon = getSuffixIconNode( /*#__PURE__*/React.createElement(LoadingOutlined, {\n spin: true\n }));\n } else {\n var iconCls = \"\".concat(prefixCls, \"-suffix\");\n mergedSuffixIcon = function mergedSuffixIcon(_ref2) {\n var open = _ref2.open,\n showSearch = _ref2.showSearch;\n if (open && showSearch) {\n return getSuffixIconNode( /*#__PURE__*/React.createElement(SearchOutlined, {\n className: iconCls\n }));\n }\n return getSuffixIconNode( /*#__PURE__*/React.createElement(DownOutlined, {\n className: iconCls\n }));\n };\n }\n // Checked item icon\n var mergedItemIcon = null;\n if (menuItemSelectedIcon !== undefined) {\n mergedItemIcon = menuItemSelectedIcon;\n } else if (multiple) {\n mergedItemIcon = /*#__PURE__*/React.createElement(CheckOutlined, null);\n } else {\n mergedItemIcon = null;\n }\n var mergedRemoveIcon = null;\n if (removeIcon !== undefined) {\n mergedRemoveIcon = removeIcon;\n } else {\n mergedRemoveIcon = /*#__PURE__*/React.createElement(CloseOutlined, null);\n }\n return {\n clearIcon: mergedClearIcon,\n suffixIcon: mergedSuffixIcon,\n itemIcon: mergedItemIcon,\n removeIcon: mergedRemoveIcon\n };\n}","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nvar Switch = React.forwardRef(function (_ref, ref) {\n var _classNames;\n\n var _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-switch' : _ref$prefixCls,\n className = _ref.className,\n checked = _ref.checked,\n defaultChecked = _ref.defaultChecked,\n disabled = _ref.disabled,\n loadingIcon = _ref.loadingIcon,\n checkedChildren = _ref.checkedChildren,\n unCheckedChildren = _ref.unCheckedChildren,\n onClick = _ref.onClick,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n restProps = _objectWithoutProperties(_ref, [\"prefixCls\", \"className\", \"checked\", \"defaultChecked\", \"disabled\", \"loadingIcon\", \"checkedChildren\", \"unCheckedChildren\", \"onClick\", \"onChange\", \"onKeyDown\"]);\n\n var _useMergedState = useMergedState(false, {\n value: checked,\n defaultValue: defaultChecked\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerChecked = _useMergedState2[0],\n setInnerChecked = _useMergedState2[1];\n\n function triggerChange(newChecked, event) {\n var mergedChecked = innerChecked;\n\n if (!disabled) {\n mergedChecked = newChecked;\n setInnerChecked(mergedChecked);\n onChange === null || onChange === void 0 ? void 0 : onChange(mergedChecked, event);\n }\n\n return mergedChecked;\n }\n\n function onInternalKeyDown(e) {\n if (e.which === KeyCode.LEFT) {\n triggerChange(false, e);\n } else if (e.which === KeyCode.RIGHT) {\n triggerChange(true, e);\n }\n\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n }\n\n function onInternalClick(e) {\n var ret = triggerChange(!innerChecked, e); // [Legacy] trigger onClick with value\n\n onClick === null || onClick === void 0 ? void 0 : onClick(ret, e);\n }\n\n var switchClassName = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), innerChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n return React.createElement(\"button\", Object.assign({}, restProps, {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": innerChecked,\n disabled: disabled,\n className: switchClassName,\n ref: ref,\n onKeyDown: onInternalKeyDown,\n onClick: onInternalClick\n }), loadingIcon, React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }, innerChecked ? checkedChildren : unCheckedChildren));\n});\nSwitch.displayName = 'Switch';\nexport default Switch;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport RcSwitch from 'rc-switch';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport warning from '../_util/warning';\nimport Wave from '../_util/wave';\nvar Switch = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var _classNames;\n var customizePrefixCls = _a.prefixCls,\n customizeSize = _a.size,\n customDisabled = _a.disabled,\n loading = _a.loading,\n _a$className = _a.className,\n className = _a$className === void 0 ? '' : _a$className,\n props = __rest(_a, [\"prefixCls\", \"size\", \"disabled\", \"loading\", \"className\"]);\n process.env.NODE_ENV !== \"production\" ? warning('checked' in props || !('value' in props), 'Switch', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(SizeContext);\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = (customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled) || loading;\n var prefixCls = getPrefixCls('switch', customizePrefixCls);\n var loadingIcon = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-handle\")\n }, loading && /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: \"\".concat(prefixCls, \"-loading-icon\")\n }));\n var classes = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-small\"), (customizeSize || size) === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(Wave, {\n insertExtraNode: true\n }, /*#__PURE__*/React.createElement(RcSwitch, _extends({}, props, {\n prefixCls: prefixCls,\n className: classes,\n disabled: mergedDisabled,\n ref: ref,\n loadingIcon: loadingIcon\n })));\n});\nSwitch.__ANT_SWITCH = true;\nif (process.env.NODE_ENV !== 'production') {\n Switch.displayName = 'Switch';\n}\nexport default Switch;","import * as React from 'react';\nimport classNames from 'classnames';\nexport default function Popup(props) {\n var showArrow = props.showArrow,\n arrowContent = props.arrowContent,\n children = props.children,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle,\n className = props.className,\n style = props.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: style\n }, showArrow !== false && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof children === 'function' ? children() : children));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Popup from './Popup';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n arrowContent = props.arrowContent,\n overlay = props.overlay,\n id = props.id,\n showArrow = props.showArrow,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(Popup, {\n showArrow: showArrow,\n arrowContent: arrowContent,\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlayInnerStyle: overlayInnerStyle\n }, overlay);\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Tooltip from './Tooltip';\nimport Popup from './Popup';\nexport { Popup };\nexport default Tooltip;","import { tuple } from './type';\nexport var PresetStatusColorTypes = tuple('success', 'processing', 'error', 'default', 'warning');\n// eslint-disable-next-line import/prefer-default-export\nexport var PresetColorTypes = tuple('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { PresetColorTypes } from '../_util/colors';\nimport { getTransitionName } from '../_util/motion';\nimport getPlacements from '../_util/placements';\nimport { cloneElement, isValidElement, isFragment } from '../_util/reactNode';\nimport warning from '../_util/warning';\nvar splitObject = function splitObject(obj, keys) {\n var picked = {};\n var omitted = _extends({}, obj);\n keys.forEach(function (key) {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked: picked,\n omitted: omitted\n };\n};\nvar PresetColorRegex = new RegExp(\"^(\".concat(PresetColorTypes.join('|'), \")(-inverse)?$\"));\n// Fix Tooltip won't hide at disabled button\n// mouse events don't trigger at disabled button in Chrome\n// https://github.com/react-component/tooltip/issues/18\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n var elementType = element.type;\n if ((elementType.__ANT_BUTTON === true || element.type === 'button') && element.props.disabled || elementType.__ANT_SWITCH === true && (element.props.disabled || element.props.loading) || elementType.__ANT_RADIO === true && element.props.disabled) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n var _splitObject = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']),\n picked = _splitObject.picked,\n omitted = _splitObject.omitted;\n var spanStyle = _extends(_extends({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : undefined\n });\n var buttonStyle = _extends(_extends({}, omitted), {\n pointerEvents: 'none'\n });\n var child = cloneElement(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: classNames(element.props.className, \"\".concat(prefixCls, \"-disabled-compatible-wrapper\"))\n }, child);\n }\n return element;\n}\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames2;\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Tooltip', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version, please use `\").concat(newName, \"` instead.\")) : void 0;\n });\n }\n var _useMergedState = useMergedState(false, {\n value: props.open !== undefined ? props.open : props.visible,\n defaultValue: props.defaultOpen !== undefined ? props.defaultOpen : props.defaultVisible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n open = _useMergedState2[0],\n setOpen = _useMergedState2[1];\n var isNoTitle = function isNoTitle() {\n var title = props.title,\n overlay = props.overlay;\n return !title && !overlay && title !== 0; // overlay for old version compatibility\n };\n\n var onOpenChange = function onOpenChange(vis) {\n var _a, _b;\n setOpen(isNoTitle() ? false : vis);\n if (!isNoTitle()) {\n (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n (_b = props.onVisibleChange) === null || _b === void 0 ? void 0 : _b.call(props, vis);\n }\n };\n var getTooltipPlacements = function getTooltipPlacements() {\n var builtinPlacements = props.builtinPlacements,\n _props$arrowPointAtCe = props.arrowPointAtCenter,\n arrowPointAtCenter = _props$arrowPointAtCe === void 0 ? false : _props$arrowPointAtCe,\n _props$autoAdjustOver = props.autoAdjustOverflow,\n autoAdjustOverflow = _props$autoAdjustOver === void 0 ? true : _props$autoAdjustOver;\n return builtinPlacements || getPlacements({\n arrowPointAtCenter: arrowPointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n };\n // 动态设置动画点\n var onPopupAlign = function onPopupAlign(domNode, align) {\n var placements = getTooltipPlacements();\n // 当前返回的位置\n var placement = Object.keys(placements).find(function (key) {\n var _a, _b;\n return placements[key].points[0] === ((_a = align.points) === null || _a === void 0 ? void 0 : _a[0]) && placements[key].points[1] === ((_b = align.points) === null || _b === void 0 ? void 0 : _b[1]);\n });\n if (!placement) {\n return;\n }\n // 根据当前坐标设置动画点\n var rect = domNode.getBoundingClientRect();\n var transformOrigin = {\n top: '50%',\n left: '50%'\n };\n if (/top|Bottom/.test(placement)) {\n transformOrigin.top = \"\".concat(rect.height - align.offset[1], \"px\");\n } else if (/Top|bottom/.test(placement)) {\n transformOrigin.top = \"\".concat(-align.offset[1], \"px\");\n }\n if (/left|Right/.test(placement)) {\n transformOrigin.left = \"\".concat(rect.width - align.offset[0], \"px\");\n } else if (/right|Left/.test(placement)) {\n transformOrigin.left = \"\".concat(-align.offset[0], \"px\");\n }\n domNode.style.transformOrigin = \"\".concat(transformOrigin.left, \" \").concat(transformOrigin.top);\n };\n var getOverlay = function getOverlay() {\n var title = props.title,\n overlay = props.overlay;\n if (title === 0) {\n return title;\n }\n return overlay || title || '';\n };\n var getPopupContainer = props.getPopupContainer,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'top' : _props$placement,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.1 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n otherProps = __rest(props, [\"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\"]);\n var customizePrefixCls = props.prefixCls,\n openClassName = props.openClassName,\n getTooltipContainer = props.getTooltipContainer,\n overlayClassName = props.overlayClassName,\n color = props.color,\n overlayInnerStyle = props.overlayInnerStyle,\n children = props.children;\n var prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var tempOpen = open;\n // Hide tooltip when there is no title\n if (!('open' in props) && !('visible' in props) && isNoTitle()) {\n tempOpen = false;\n }\n var child = getDisabledCompatibleChildren(isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n var childProps = child.props;\n var childCls = !childProps.className || typeof childProps.className === 'string' ? classNames(childProps.className, _defineProperty({}, openClassName || \"\".concat(prefixCls, \"-open\"), true)) : childProps.className;\n var customOverlayClassName = classNames(overlayClassName, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-\").concat(color), color && PresetColorRegex.test(color)), _classNames2));\n var formattedOverlayInnerStyle = overlayInnerStyle;\n var arrowContentStyle = {};\n if (color && !PresetColorRegex.test(color)) {\n formattedOverlayInnerStyle = _extends(_extends({}, overlayInnerStyle), {\n background: color\n });\n // @ts-ignore\n arrowContentStyle = {\n '--antd-arrow-background-color': color\n };\n }\n return /*#__PURE__*/React.createElement(RcTooltip, _extends({}, otherProps, {\n placement: placement,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: ref,\n builtinPlacements: getTooltipPlacements(),\n overlay: getOverlay(),\n visible: tempOpen,\n onVisibleChange: onOpenChange,\n onPopupAlign: onPopupAlign,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-arrow-content\"),\n style: arrowContentStyle\n }),\n motion: {\n motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n motionDeadline: 1000\n }\n }), tempOpen ? cloneElement(child, {\n className: childCls\n }) : child);\n});\nif (process.env.NODE_ENV !== 'production') {\n Tooltip.displayName = 'Tooltip';\n}\nexport default Tooltip;","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.26.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\r\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\r\n}\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: function(value) {\r\n\t\tif (Array.isArray && Array.isArray(value)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar type = Object.prototype.toString.call(value);\r\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is a finite number, else returns false\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t */\r\n\tisFinite: function(value) {\r\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {object|Array} loopable - The object or array to be iterated.\r\n\t * @param {function} fn - The function to call for each item.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see https://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = Object.create(source);\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @param {object} [options] - Merging options:\r\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {object} target - The target object in which all objects are merged into.\r\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\textend: Object.assign || function(target) {\r\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, dst, src) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t},\r\n\r\n\t_deprecated: function(scope, value, previous, current) {\r\n\t\tif (value !== undefined) {\r\n\t\t\tconsole.warn(scope + ': \"' + previous +\r\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar helpers_core = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nvar helpers_easing = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\r\nvar RAD_PER_DEG = PI / 180;\r\nvar DOUBLE_PI = PI * 2;\r\nvar HALF_PI = PI / 2;\r\nvar QUARTER_PI = PI / 4;\r\nvar TWO_THIRDS_PI = PI * 2 / 3;\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports$1 = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} width - The rectangle's width.\r\n\t * @param {number} height - The rectangle's height.\r\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\r\n\t\t\tvar left = x + r;\r\n\t\t\tvar top = y + r;\r\n\t\t\tvar right = x + width - r;\r\n\t\t\tvar bottom = y + height - r;\r\n\r\n\t\t\tctx.moveTo(x, top);\r\n\t\t\tif (left < right && top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\r\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\r\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\r\n\t\t\t} else if (left < right) {\r\n\t\t\t\tctx.moveTo(left, y);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\r\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\r\n\t\t\t} else if (top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\r\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\r\n\t\t\t} else {\r\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\r\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tctx.rotate(rad);\r\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\r\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\r\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\r\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\r\n\t\t\t// circle with `radius`. For more details, see the following PRs:\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\r\n\t\t\tcornerRadius = radius * 0.516;\r\n\t\t\tsize = radius - cornerRadius;\r\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\r\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\r\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\r\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\r\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\r\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tif (!rotation) {\r\n\t\t\t\tsize = Math.SQRT1_2 * radius;\r\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'rectRot':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'cross':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the point is inside the rectangle\r\n\t * @param {object} point - The point to test\r\n\t * @param {object} area - The rectangle\r\n\t * @returns {boolean}\r\n\t * @private\r\n\t */\r\n\t_isPointInArea: function(point, area) {\r\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\r\n\r\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\r\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tvar stepped = target.steppedLine;\r\n\t\tif (stepped) {\r\n\t\t\tif (stepped === 'middle') {\r\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\r\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\r\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\r\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\nvar helpers_canvas = exports$1;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.clear = exports$1.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports$1.roundedRect.apply(exports$1, arguments);\r\n};\n\nvar defaults = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n// TODO(v3): remove 'global' from namespace. all default are global and\r\n// there's inconsistency around which options are under 'global'\r\ndefaults._set('global', {\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tdefaultLineHeight: 1.2,\r\n\tshowLines: true\r\n});\r\n\r\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\r\n\r\n/**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\r\nfunction toFontString(font) {\r\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (font.style ? font.style + ' ' : '')\r\n\t\t+ (font.weight ? font.weight + ' ' : '')\r\n\t\t+ font.size + 'px '\r\n\t\t+ font.family;\r\n}\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nvar helpers_options = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers_core.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Parses font options and returns the font object.\r\n\t * @param {object} options - A object that contains font options to be parsed.\r\n\t * @return {object} The font object.\r\n\t * @todo Support font.* options and renamed to toFont().\r\n\t * @private\r\n\t */\r\n\t_parseFont: function(options) {\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar font = {\r\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\r\n\t\t\tsize: size,\r\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tweight: null,\r\n\t\t\tstring: ''\r\n\t\t};\r\n\r\n\t\tfont.string = toFontString(font);\r\n\t\treturn font;\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array} inputs - An array of values, falling back to the last value.\r\n\t * @param {object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @param {object} [info] - object to return information about resolution in\r\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index, info) {\r\n\t\tvar cacheable = true;\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\tif (info && !cacheable) {\r\n\t\t\t\t\tinfo.cacheable = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\n/**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\r\nvar exports$2 = {\r\n\t/**\r\n\t * Returns an array of factors sorted from 1 to sqrt(value)\r\n\t * @private\r\n\t */\r\n\t_factorize: function(value) {\r\n\t\tvar result = [];\r\n\t\tvar sqrt = Math.sqrt(value);\r\n\t\tvar i;\r\n\r\n\t\tfor (i = 1; i < sqrt; i++) {\r\n\t\t\tif (value % i === 0) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t\tresult.push(value / i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\r\n\t\t\tresult.push(sqrt);\r\n\t\t}\r\n\r\n\t\tresult.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t}).pop();\r\n\t\treturn result;\r\n\t},\r\n\r\n\tlog10: Math.log10 || function(x) {\r\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t// Check for whole powers of 10,\r\n\t\t// which due to floating point rounding error should be corrected.\r\n\t\tvar powerOf10 = Math.round(exponent);\r\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t}\r\n};\r\n\r\nvar helpers_math = exports$2;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn rectX + rectX + width - x;\r\n\t\t},\r\n\t\tsetWidth: function(w) {\r\n\t\t\twidth = w;\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\tif (align === 'center') {\r\n\t\t\t\treturn align;\r\n\t\t\t}\r\n\t\t\treturn align === 'right' ? 'left' : 'right';\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x - value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, itemWidth) {\r\n\t\t\treturn x - itemWidth;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getLtrAdapter = function() {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\treturn align;\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x + value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\r\n\t\t\treturn x;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getAdapter = function(rtl, rectX, width) {\r\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\r\n};\r\n\r\nvar overrideTextDirection = function(ctx, direction) {\r\n\tvar style, original;\r\n\tif (direction === 'ltr' || direction === 'rtl') {\r\n\t\tstyle = ctx.canvas.style;\r\n\t\toriginal = [\r\n\t\t\tstyle.getPropertyValue('direction'),\r\n\t\t\tstyle.getPropertyPriority('direction'),\r\n\t\t];\r\n\r\n\t\tstyle.setProperty('direction', direction, 'important');\r\n\t\tctx.prevTextDirection = original;\r\n\t}\r\n};\r\n\r\nvar restoreTextDirection = function(ctx) {\r\n\tvar original = ctx.prevTextDirection;\r\n\tif (original !== undefined) {\r\n\t\tdelete ctx.prevTextDirection;\r\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\r\n\t}\r\n};\r\n\r\nvar helpers_rtl = {\r\n\tgetRtlAdapter: getAdapter,\r\n\toverrideTextDirection: overrideTextDirection,\r\n\trestoreTextDirection: restoreTextDirection,\r\n};\n\nvar helpers$1 = helpers_core;\r\nvar easing = helpers_easing;\r\nvar canvas = helpers_canvas;\r\nvar options = helpers_options;\r\nvar math = helpers_math;\r\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = chartjsColor(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = chartjsColor(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers$1.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers$1.extend(Element.prototype, {\r\n\t_type: undefined,\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers$1.extend({}, me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = helpers$1.extend({}, model);\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers$1.inherits;\r\n\r\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\nvar core_animation = exports$3;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\n\ncore_defaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers$1.noop,\r\n\t\tonComplete: helpers$1.noop\r\n\t}\r\n});\r\n\r\nvar core_animations = {\r\n\tanimations: [],\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {number} duration - The animation duration in ms.\r\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\t\tanimation.startTime = Date.now();\r\n\t\tanimation.duration = duration;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\r\n\t\tme.advance();\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function() {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart, numSteps, nextStep;\r\n\t\tvar i = 0;\r\n\r\n\t\t// 1 animation per chart, so we are looping charts here\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\t\t\tnumSteps = animation.numSteps;\r\n\r\n\t\t\t// Make sure that currentStep starts at 1\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\r\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\r\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\r\n\r\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= numSteps) {\r\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\nvar resolve = helpers$1.options.resolve;\r\n\r\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n/**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\r\nfunction listenArrayEvents(array, listener) {\r\n\tif (array._chartjs) {\r\n\t\tarray._chartjs.listeners.push(listener);\r\n\t\treturn;\r\n\t}\r\n\r\n\tObject.defineProperty(array, '_chartjs', {\r\n\t\tconfigurable: true,\r\n\t\tenumerable: false,\r\n\t\tvalue: {\r\n\t\t\tlisteners: [listener]\r\n\t\t}\r\n\t});\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\tvar base = array[key];\r\n\r\n\t\tObject.defineProperty(array, key, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function() {\r\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\r\nfunction unlistenArrayEvents(array, listener) {\r\n\tvar stub = array._chartjs;\r\n\tif (!stub) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar listeners = stub.listeners;\r\n\tvar index = listeners.indexOf(listener);\r\n\tif (index !== -1) {\r\n\t\tlisteners.splice(index, 1);\r\n\t}\r\n\r\n\tif (listeners.length > 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tdelete array[key];\r\n\t});\r\n\r\n\tdelete array._chartjs;\r\n}\r\n\r\n// Base class for all dataset controllers (line, bar, etc)\r\nvar DatasetController = function(chart, datasetIndex) {\r\n\tthis.initialize(chart, datasetIndex);\r\n};\r\n\r\nhelpers$1.extend(DatasetController.prototype, {\r\n\r\n\t/**\r\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdatasetElementType: null,\r\n\r\n\t/**\r\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdataElementType: null,\r\n\r\n\t/**\r\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth'\r\n\t],\r\n\r\n\t/**\r\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'pointStyle'\r\n\t],\r\n\r\n\tinitialize: function(chart, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tme.chart = chart;\r\n\t\tme.index = datasetIndex;\r\n\t\tme.linkScales();\r\n\t\tme.addElements();\r\n\t\tme._type = me.getMeta().type;\r\n\t},\r\n\r\n\tupdateIndex: function(datasetIndex) {\r\n\t\tthis.index = datasetIndex;\r\n\t},\r\n\r\n\tlinkScales: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar chart = me.chart;\r\n\t\tvar scales = chart.scales;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scalesOpts = chart.options.scales;\r\n\r\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\r\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\r\n\t\t}\r\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\r\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\r\n\t\t}\r\n\t},\r\n\r\n\tgetDataset: function() {\r\n\t\treturn this.chart.data.datasets[this.index];\r\n\t},\r\n\r\n\tgetMeta: function() {\r\n\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t},\r\n\r\n\tgetScaleForId: function(scaleID) {\r\n\t\treturn this.chart.scales[scaleID];\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScale: function() {\r\n\t\treturn this.getScaleForId(this._getValueScaleId());\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScale: function() {\r\n\t\treturn this.getScaleForId(this._getIndexScaleId());\r\n\t},\r\n\r\n\treset: function() {\r\n\t\tthis._update(true);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tdestroy: function() {\r\n\t\tif (this._data) {\r\n\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t}\r\n\t},\r\n\r\n\tcreateMetaDataset: function() {\r\n\t\tvar me = this;\r\n\t\tvar type = me.datasetElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index\r\n\t\t});\r\n\t},\r\n\r\n\tcreateMetaData: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar type = me.dataElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index\r\n\t\t});\r\n\t},\r\n\r\n\taddElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data || [];\r\n\t\tvar metaData = meta.data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t}\r\n\r\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t},\r\n\r\n\taddElementAndReset: function(index) {\r\n\t\tvar element = this.createMetaData(index);\r\n\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\tthis.updateElement(element, index, true);\r\n\t},\r\n\r\n\tbuildOrUpdateElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t// the internal meta data accordingly.\r\n\t\tif (me._data !== data) {\r\n\t\t\tif (me._data) {\r\n\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (data && Object.isExtensible(data)) {\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t}\r\n\t\t\tme._data = data;\r\n\t\t}\r\n\r\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\tme.resyncElements();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the merged user-supplied and default dataset-level options\r\n\t * @private\r\n\t */\r\n\t_configure: function() {\r\n\t\tvar me = this;\r\n\t\tme._config = helpers$1.merge(Object.create(null), [\r\n\t\t\tme.chart.options.datasets[me._type],\r\n\t\t\tme.getDataset(),\r\n\t\t], {\r\n\t\t\tmerger: function(key, target, source) {\r\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\r\n\t\t\t\t\thelpers$1._merger(key, target, source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_update: function(reset) {\r\n\t\tvar me = this;\r\n\t\tme._configure();\r\n\t\tme._cachedDataOpts = null;\r\n\t\tme.update(reset);\r\n\t},\r\n\r\n\tupdate: helpers$1.noop,\r\n\r\n\ttransition: function(easingValue) {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].transition(easingValue);\r\n\t\t}\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.draw();\r\n\t\t}\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].draw();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a set of predefined style properties that should be used to represent the dataset\r\n\t * or the data if the index is specified\r\n\t * @param {number} index - data index\r\n\t * @return {IStyleInterface} style object\r\n\t */\r\n\tgetStyle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = meta.dataset;\r\n\t\tvar style;\r\n\r\n\t\tme._configure();\r\n\t\tif (dataset && index === undefined) {\r\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\r\n\t\t} else {\r\n\t\t\tindex = index || 0;\r\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\r\n\t\t}\r\n\r\n\t\tif (style.fill === false || style.fill === null) {\r\n\t\t\tstyle.backgroundColor = style.borderColor;\r\n\t\t}\r\n\r\n\t\treturn style;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element, hover) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._datasetElementOptions;\r\n\t\tvar values = {};\r\n\t\tvar i, ilen, key, readKey;\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index,\r\n\t\t\thover: hover\r\n\t\t};\r\n\r\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\tkey = elementOptions[i];\r\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\r\n\t\t\tvalues[key] = resolve([\r\n\t\t\t\tcustom[readKey],\r\n\t\t\t\tdatasetOpts[readKey],\r\n\t\t\t\toptions[readKey]\r\n\t\t\t], context);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(element, index) {\r\n\t\tvar me = this;\r\n\t\tvar custom = element && element.custom;\r\n\t\tvar cached = me._cachedDataOpts;\r\n\t\tif (cached && !custom) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._dataElementOptions;\r\n\t\tvar values = {};\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\r\n\t\tvar info = {cacheable: !custom};\r\n\r\n\t\tvar keys, i, ilen, key;\r\n\r\n\t\tcustom = custom || {};\r\n\r\n\t\tif (helpers$1.isArray(elementOptions)) {\r\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\t\tkey = elementOptions[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tkeys = Object.keys(elementOptions);\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.cacheable) {\r\n\t\t\tme._cachedDataOpts = Object.freeze(values);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tremoveHoverStyle: function(element) {\r\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\r\n\t\tdelete element.$previousStyle;\r\n\t},\r\n\r\n\tsetHoverStyle: function(element) {\r\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\tvar index = element._index;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar model = element._model;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\telement.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\r\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\r\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_removeDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.removeHoverStyle(element);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_setDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\t\tvar prev = {};\r\n\t\tvar i, ilen, key, keys, hoverOptions, model;\r\n\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmodel = element._model;\r\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\r\n\r\n\t\tkeys = Object.keys(hoverOptions);\r\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\tkey = keys[i];\r\n\t\t\tprev[key] = model[key];\r\n\t\t\tmodel[key] = hoverOptions[key];\r\n\t\t}\r\n\r\n\t\telement.$previousStyle = prev;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tresyncElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data;\r\n\t\tvar numMeta = meta.data.length;\r\n\t\tvar numData = data.length;\r\n\r\n\t\tif (numData < numMeta) {\r\n\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t} else if (numData > numMeta) {\r\n\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tinsertElements: function(start, count) {\r\n\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\tthis.addElementAndReset(start + i);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPush: function() {\r\n\t\tvar count = arguments.length;\r\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPop: function() {\r\n\t\tthis.getMeta().data.pop();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataShift: function() {\r\n\t\tthis.getMeta().data.shift();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataSplice: function(start, count) {\r\n\t\tthis.getMeta().data.splice(start, count);\r\n\t\tthis.insertElements(start, arguments.length - 2);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataUnshift: function() {\r\n\t\tthis.insertElements(0, arguments.length);\r\n\t}\r\n});\r\n\r\nDatasetController.extend = helpers$1.inherits;\r\n\r\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2,\r\n\t\t\tborderAlign: 'center'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction clipArc(ctx, arc) {\r\n\tvar startAngle = arc.startAngle;\r\n\tvar endAngle = arc.endAngle;\r\n\tvar pixelMargin = arc.pixelMargin;\r\n\tvar angleMargin = pixelMargin / arc.outerRadius;\r\n\tvar x = arc.x;\r\n\tvar y = arc.y;\r\n\r\n\t// Draw an inner border by cliping the arc and drawing a double-width border\r\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\r\n\tctx.beginPath();\r\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\r\n\tif (arc.innerRadius > pixelMargin) {\r\n\t\tangleMargin = pixelMargin / arc.innerRadius;\r\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\r\n\t} else {\r\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\r\n\t}\r\n\tctx.closePath();\r\n\tctx.clip();\r\n}\r\n\r\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\r\n\tvar endAngle = arc.endAngle;\r\n\tvar i;\r\n\r\n\tif (inner) {\r\n\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\tclipArc(ctx, arc);\r\n\t\tarc.endAngle = endAngle;\r\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\r\n\t\t\tarc.endAngle += TAU;\r\n\t\t\tarc.fullCircles--;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nfunction drawBorder(ctx, vm, arc) {\r\n\tvar inner = vm.borderAlign === 'inner';\r\n\r\n\tif (inner) {\r\n\t\tctx.lineWidth = vm.borderWidth * 2;\r\n\t\tctx.lineJoin = 'round';\r\n\t} else {\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tctx.lineJoin = 'bevel';\r\n\t}\r\n\r\n\tif (arc.fullCircles) {\r\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\r\n\t}\r\n\r\n\tif (inner) {\r\n\t\tclipArc(ctx, arc);\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\tctx.closePath();\r\n\tctx.stroke();\r\n}\r\n\r\nvar element_arc = core_element.extend({\r\n\t_type: 'arc',\r\n\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar angle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += TAU;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\r\n\t\tvar arc = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tinnerRadius: vm.innerRadius,\r\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\r\n\t\t\tpixelMargin: pixelMargin,\r\n\t\t\tstartAngle: vm.startAngle,\r\n\t\t\tendAngle: vm.endAngle,\r\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\r\n\t\t};\r\n\t\tvar i;\r\n\r\n\t\tctx.save();\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\r\n\t\tif (arc.fullCircles) {\r\n\t\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\t\tctx.closePath();\r\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\tctx.closePath();\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tdrawBorder(ctx, vm, arc);\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar element_line = core_element.extend({\r\n\t_type: 'line',\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar closePath = me._loop;\r\n\t\tvar index, previous, currentVM;\r\n\r\n\t\tif (!points.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (me._loop) {\r\n\t\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\r\n\t\t\t\t// If the line has an open path, shift the point array\r\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\r\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\r\n\t\t\t\t\tclosePath = spanGaps;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If the line has a close path, add the first point again\r\n\t\t\tif (closePath) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\r\n\t\t// First point moves to it's starting position no matter what\r\n\t\tcurrentVM = points[0]._view;\r\n\t\tif (!currentVM.skip) {\r\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\tlastDrawnIndex = 0;\r\n\t\t}\r\n\r\n\t\tfor (index = 1; index < points.length; ++index) {\r\n\t\t\tcurrentVM = points[index]._view;\r\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\r\n\r\n\t\t\tif (!currentVM.skip) {\r\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Line to next point\r\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\r\n\t\t\t\t}\r\n\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (closePath) {\r\n\t\t\tctx.closePath();\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor$1 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor$1,\r\n\t\t\tborderColor: defaultColor$1,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nvar element_point = core_element.extend({\r\n\t_type: 'point',\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaultColor$2,\r\n\t\t\tborderColor: defaultColor$2,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(vm) {\r\n\treturn vm && vm.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(vm) {\r\n\tvar x1, x2, y1, y2, half;\r\n\r\n\tif (isVertical(vm)) {\r\n\t\thalf = vm.width / 2;\r\n\t\tx1 = vm.x - half;\r\n\t\tx2 = vm.x + half;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\thalf = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - half;\r\n\t\ty2 = vm.y + half;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nfunction swap(orig, v1, v2) {\r\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\r\n}\r\n\r\nfunction parseBorderSkipped(vm) {\r\n\tvar edge = vm.borderSkipped;\r\n\tvar res = {};\r\n\r\n\tif (!edge) {\r\n\t\treturn res;\r\n\t}\r\n\r\n\tif (vm.horizontal) {\r\n\t\tif (vm.base > vm.x) {\r\n\t\t\tedge = swap(edge, 'left', 'right');\r\n\t\t}\r\n\t} else if (vm.base < vm.y) {\r\n\t\tedge = swap(edge, 'bottom', 'top');\r\n\t}\r\n\r\n\tres[edge] = true;\r\n\treturn res;\r\n}\r\n\r\nfunction parseBorderWidth(vm, maxW, maxH) {\r\n\tvar value = vm.borderWidth;\r\n\tvar skip = parseBorderSkipped(vm);\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = +value.top || 0;\r\n\t\tr = +value.right || 0;\r\n\t\tb = +value.bottom || 0;\r\n\t\tl = +value.left || 0;\r\n\t} else {\r\n\t\tt = r = b = l = +value || 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\r\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\r\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\r\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\r\n\t};\r\n}\r\n\r\nfunction boundingRects(vm) {\r\n\tvar bounds = getBarBounds(vm);\r\n\tvar width = bounds.right - bounds.left;\r\n\tvar height = bounds.bottom - bounds.top;\r\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\r\n\r\n\treturn {\r\n\t\touter: {\r\n\t\t\tx: bounds.left,\r\n\t\t\ty: bounds.top,\r\n\t\t\tw: width,\r\n\t\t\th: height\r\n\t\t},\r\n\t\tinner: {\r\n\t\t\tx: bounds.left + border.l,\r\n\t\t\ty: bounds.top + border.t,\r\n\t\t\tw: width - border.l - border.r,\r\n\t\t\th: height - border.t - border.b\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction inRange(vm, x, y) {\r\n\tvar skipX = x === null;\r\n\tvar skipY = y === null;\r\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\r\n\r\n\treturn bounds\r\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\r\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\r\n}\r\n\r\nvar element_rectangle = core_element.extend({\r\n\t_type: 'rectangle',\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar rects = boundingRects(vm);\r\n\t\tvar outer = rects.outer;\r\n\t\tvar inner = rects.inner;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\r\n\r\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\r\n\t\tctx.clip();\r\n\t\tctx.fillStyle = vm.borderColor;\r\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\r\n\t\tctx.fill('evenodd');\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\treturn inRange(this._view, mouseX, mouseY);\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn isVertical(vm)\r\n\t\t\t? inRange(vm, mouseX, null)\r\n\t\t\t: inRange(vm, null, mouseY);\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\treturn inRange(this._view, mouseX, null);\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\treturn inRange(this._view, null, mouseY);\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(vm)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\r\n\t\treturn isVertical(vm)\r\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\r\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\n\nvar elements = {};\r\nvar Arc = element_arc;\r\nvar Line = element_line;\r\nvar Point = element_point;\r\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\r\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tbar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale._length;\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar min = helpers$1.isNullOrUndef(thickness)\r\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\r\n\t\t: -1;\r\n\tvar size, ratio;\r\n\r\n\tif (helpers$1.isNullOrUndef(thickness)) {\r\n\t\tsize = min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale size.\r\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\r\n\tsize = Math.abs(next - prev) / 2 * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nvar controller_bar = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Rectangle,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderSkipped',\r\n\t\t'borderWidth',\r\n\t\t'barPercentage',\r\n\t\t'barThickness',\r\n\t\t'categoryPercentage',\r\n\t\t'maxBarThickness',\r\n\t\t'minBarLength'\r\n\t],\r\n\r\n\tinitialize: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta, scaleOpts;\r\n\r\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\tmeta = me.getMeta();\r\n\t\tmeta.stack = me.getDataset().stack;\r\n\t\tmeta.bar = true;\r\n\r\n\t\tscaleOpts = me._getIndexScale().options;\r\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\r\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\r\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\r\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\r\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._ruler = me.getRuler();\r\n\r\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(rectangle, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\r\n\r\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\trectangle._datasetIndex = me.index;\r\n\t\trectangle._index = index;\r\n\t\trectangle._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderSkipped: options.borderSkipped,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\tdatasetLabel: dataset.label,\r\n\t\t\tlabel: me.chart.data.labels[index]\r\n\t\t};\r\n\r\n\t\tif (helpers$1.isArray(dataset.data[index])) {\r\n\t\t\trectangle._model.borderSkipped = null;\r\n\t\t}\r\n\r\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\r\n\r\n\t\trectangle.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\r\n\t\tvar me = this;\r\n\t\tvar model = rectangle._model;\r\n\t\tvar vscale = me._getValueScale();\r\n\t\tvar base = vscale.getBasePixel();\r\n\t\tvar horizontal = vscale.isHorizontal();\r\n\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\r\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\r\n\r\n\t\tmodel.horizontal = horizontal;\r\n\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stacks based on groups and bar visibility.\r\n\t * @param {number} [last] - The dataset index\r\n\t * @returns {string[]} The list of stack IDs\r\n\t * @private\r\n\t */\r\n\t_getStacks: function(last) {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar stacks = [];\r\n\t\tvar i, meta;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tmeta = metasets[i];\r\n\t\t\t// stacked | meta.stack\r\n\t\t\t// | found | not found | undefined\r\n\t\t\t// false | x | x | x\r\n\t\t\t// true | | x |\r\n\t\t\t// undefined | | x | x\r\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\r\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\r\n\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t}\r\n\t\t\tif (meta.index === last) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn stacks;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t * @private\r\n\t */\r\n\tgetStackCount: function() {\r\n\t\treturn this._getStacks().length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t * @param {number} [datasetIndex] - The dataset index\r\n\t * @param {string} [name] - The stack name to find\r\n\t * @returns {number} The stack index\r\n\t * @private\r\n\t */\r\n\tgetStackIndex: function(datasetIndex, name) {\r\n\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\tvar index = (name !== undefined)\r\n\t\t\t? stacks.indexOf(name)\r\n\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\treturn (index === -1)\r\n\t\t\t? stacks.length - 1\r\n\t\t\t: index;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tgetRuler: function() {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar pixels = [];\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tpixels: pixels,\r\n\t\t\tstart: scale._startPixel,\r\n\t\t\tend: scale._endPixel,\r\n\t\t\tstackCount: me.getStackCount(),\r\n\t\t\tscale: scale\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Note: pixel values are not clamped to the scale area.\r\n\t * @private\r\n\t */\r\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\tvar datasets = chart.data.datasets;\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\r\n\t\tvar minBarLength = options.minBarLength;\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar stack = me.getMeta().stack;\r\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\r\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\r\n\r\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\timeta = metasets[i];\r\n\r\n\t\t\t\tif (imeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (imeta.stack === stack) {\r\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\r\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\r\n\r\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbase = scale.getPixelForValue(start);\r\n\t\thead = scale.getPixelForValue(start + length);\r\n\t\tsize = head - base;\r\n\r\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\r\n\t\t\tsize = minBarLength;\r\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\r\n\t\t\t\thead = base - minBarLength;\r\n\t\t\t} else {\r\n\t\t\t\thead = base + minBarLength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tbase: base,\r\n\t\t\thead: head,\r\n\t\t\tcenter: head + size / 2\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\r\n\t\tvar me = this;\r\n\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\tvar size = Math.min(\r\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\r\n\t\t\trange.chunk * range.ratio);\r\n\r\n\t\treturn {\r\n\t\t\tbase: center - size / 2,\r\n\t\t\thead: center + size / 2,\r\n\t\t\tcenter: center,\r\n\t\t\tsize: size\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar ilen = rects.length;\r\n\t\tvar i = 0;\r\n\r\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\r\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\r\n\t\t\t\trects[i].draw();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\r\n\t\tvar indexOpts = me._getIndexScale().options;\r\n\t\tvar valueOpts = me._getValueScale().options;\r\n\r\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\r\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\r\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\r\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\r\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\r\n\r\n\t\treturn values;\r\n\t}\r\n\r\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\r\nvar resolve$1 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_bubble = core_datasetController.extend({\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t\t'hoverRadius',\r\n\t\t'hitRadius',\r\n\t\t'pointStyle',\r\n\t\t'rotation'\r\n\t],\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data;\r\n\r\n\t\t// Update Points\r\n\t\thelpers$1.each(points, function(point, index) {\r\n\t\t\tme.updateElement(point, index, reset);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar data = me.getDataset().data[index];\r\n\t\tvar dsIndex = me.index;\r\n\r\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = dsIndex;\r\n\t\tpoint._index = index;\r\n\t\tpoint._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\thitRadius: options.hitRadius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t};\r\n\r\n\t\tpoint.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(point, index) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar data = dataset.data[index] || {};\r\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// In case values were cached (and thus frozen), we need to clone the values\r\n\t\tif (me._cachedDataOpts === values) {\r\n\t\t\tvalues = helpers$1.extend({}, values);\r\n\t\t}\r\n\r\n\t\t// Custom radius resolution\r\n\t\tvalues.radius = resolve$1([\r\n\t\t\tcustom.radius,\r\n\t\t\tdata.r,\r\n\t\t\tme._config.radius,\r\n\t\t\tchart.options.elements.point.radius\r\n\t\t], context, index);\r\n\r\n\t\treturn values;\r\n\t}\r\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\r\n\r\nvar PI$1 = Math.PI;\r\nvar DOUBLE_PI$1 = PI$1 * 2;\r\nvar HALF_PI$1 = PI$1 / 2;\r\n\r\ncore_defaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: -HALF_PI$1,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: DOUBLE_PI$1,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_doughnut = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\tgetRingIndex: function(datasetIndex) {\r\n\t\tvar ringIndex = 0;\r\n\r\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t++ringIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringIndex;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar ratioX = 1;\r\n\t\tvar ratioY = 1;\r\n\t\tvar offsetX = 0;\r\n\t\tvar offsetY = 0;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar arcs = meta.data;\r\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\r\n\t\tvar circumference = opts.circumference;\r\n\t\tvar chartWeight = me._getRingWeight(me.index);\r\n\t\tvar maxWidth, maxHeight, i, ilen;\r\n\r\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\r\n\t\tif (circumference < DOUBLE_PI$1) {\r\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\r\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\r\n\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\tvar startX = Math.cos(startAngle);\r\n\t\t\tvar startY = Math.sin(startAngle);\r\n\t\t\tvar endX = Math.cos(endAngle);\r\n\t\t\tvar endY = Math.sin(endAngle);\r\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\r\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\r\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\r\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\r\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tratioX = (maxX - minX) / 2;\r\n\t\t\tratioY = (maxY - minY) / 2;\r\n\t\t\toffsetX = -(maxX + minX) / 2;\r\n\t\t\toffsetY = -(maxY + minY) / 2;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t}\r\n\r\n\t\tchart.borderWidth = me.getMaxBorderWidth();\r\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\r\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\r\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\r\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\r\n\t\tchart.offsetX = offsetX * chart.outerRadius;\r\n\t\tchart.offsetY = offsetY * chart.outerRadius;\r\n\r\n\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\r\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\r\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\tendAngle: endAngle,\r\n\t\t\t\tcircumference: circumference,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar model = arc._model;\r\n\r\n\t\t// Set correct angles if not resetting\r\n\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t}\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcalculateTotal: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar total = 0;\r\n\t\tvar value;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tvalue = dataset.data[index];\r\n\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* if (total === 0) {\r\n\t\t\ttotal = NaN;\r\n\t\t}*/\r\n\r\n\t\treturn total;\r\n\t},\r\n\r\n\tcalculateCircumference: function(value) {\r\n\t\tvar total = this.getMeta().total;\r\n\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// gets the max border or hover width to properly scale pie charts\r\n\tgetMaxBorderWidth: function(arcs) {\r\n\t\tvar me = this;\r\n\t\tvar max = 0;\r\n\t\tvar chart = me.chart;\r\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\r\n\r\n\t\tif (!arcs) {\r\n\t\t\t// Find the outmost visible dataset\r\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tarcs = meta.data;\r\n\t\t\t\t\tif (i !== me.index) {\r\n\t\t\t\t\t\tcontroller = meta.controller;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!arcs) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarc = arcs[i];\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller._configure();\r\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\r\n\t\t\t} else {\r\n\t\t\t\toptions = arc._options;\r\n\t\t\t}\r\n\t\t\tif (options.borderAlign !== 'inner') {\r\n\t\t\t\tborderWidth = options.borderWidth;\r\n\t\t\t\thoverWidth = options.hoverBorderWidth;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n\t * @private\r\n\t */\r\n\t_getRingWeightOffset: function(datasetIndex) {\r\n\t\tvar ringWeightOffset = 0;\r\n\r\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\r\n\t\t\tif (this.chart.isDatasetVisible(i)) {\r\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringWeightOffset;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getRingWeight: function(dataSetIndex) {\r\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the sum of all visibile data set weights. This value can be 0.\r\n\t * @private\r\n\t */\r\n\t_getVisibleDatasetWeightTotal: function() {\r\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\r\n\t}\r\n});\n\ncore_defaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tposition: 'left',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\thorizontalBar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_horizontalBar = controller_bar.extend({\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t}\r\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\r\nvar resolve$2 = helpers$1.options.resolve;\r\nvar isPointInArea = helpers$1.canvas._isPointInArea;\r\n\r\ncore_defaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nfunction scaleClip(scale, halfBorderWidth) {\r\n\tvar tickOpts = scale && scale.options.ticks || {};\r\n\tvar reverse = tickOpts.reverse;\r\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\r\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\r\n\treturn {\r\n\t\tstart: reverse ? max : min,\r\n\t\tend: reverse ? min : max\r\n\t};\r\n}\r\n\r\nfunction defaultClip(xScale, yScale, borderWidth) {\r\n\tvar halfBorderWidth = borderWidth / 2;\r\n\tvar x = scaleClip(xScale, halfBorderWidth);\r\n\tvar y = scaleClip(yScale, halfBorderWidth);\r\n\r\n\treturn {\r\n\t\ttop: y.end,\r\n\t\tright: x.end,\r\n\t\tbottom: y.start,\r\n\t\tleft: x.start\r\n\t};\r\n}\r\n\r\nfunction toClip(value) {\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = value.top;\r\n\t\tr = value.right;\r\n\t\tb = value.bottom;\r\n\t\tl = value.left;\r\n\t} else {\r\n\t\tt = r = b = l = value;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: t,\r\n\t\tright: r,\r\n\t\tbottom: b,\r\n\t\tleft: l\r\n\t};\r\n}\r\n\r\n\r\nvar controller_line = core_datasetController.extend({\r\n\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth',\r\n\t\t'cubicInterpolationMode',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar options = me.chart.options;\r\n\t\tvar config = me._config;\r\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\r\n\r\n\t\t// Update Line\r\n\t\tif (showLine) {\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\t\tconfig.lineTension = config.tension;\r\n\t\t\t}\r\n\r\n\t\t\t// Utility\r\n\t\t\tline._scale = me._yScale;\r\n\t\t\tline._datasetIndex = me.index;\r\n\t\t\t// Data\r\n\t\t\tline._children = points;\r\n\t\t\t// Model\r\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\t\tline.pivot();\r\n\t\t}\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t}\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar datasetIndex = me.index;\r\n\t\tvar value = dataset.data[index];\r\n\t\tvar xScale = me._xScale;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar x, y;\r\n\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\r\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t// Utility\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = datasetIndex;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\r\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element) {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = me.chart.options;\r\n\t\tvar lineOptions = options.elements.line;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\t// The default behavior of lines is to break at null values, according\r\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t// This option gives lines the ability to span gaps\r\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\r\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\r\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar sumPos = 0;\r\n\t\tvar sumNeg = 0;\r\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\r\n\r\n\t\tif (yScale.options.stacked) {\r\n\t\t\trightValue = +yScale.getRightValue(value);\r\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\r\n\t\t\tilen = metasets.length;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tdsMeta = metasets[i];\r\n\t\t\t\tif (dsMeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\r\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\r\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\r\n\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rightValue < 0) {\r\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t}\r\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t}\r\n\t\treturn yScale.getPixelForValue(value);\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (lineModel.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\r\n\t\t\thelpers$1.splineCurveMonotone(points);\r\n\t\t} else {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\r\n\t\t\t\t\tlineModel.tension\r\n\t\t\t\t);\r\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (chart.options.elements.line.capBezierPoints) {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tif (isPointInArea(model, area)) {\r\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data || [];\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar i = 0;\r\n\t\tvar ilen = points.length;\r\n\t\tvar clip;\r\n\r\n\t\tif (me._showLine) {\r\n\t\t\tclip = meta.dataset._model.clip;\r\n\r\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\r\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\r\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\r\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\r\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t\t}\r\n\r\n\t\t// Draw the points\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tpoints[i].draw(area);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\r\n\t},\r\n});\n\nvar resolve$3 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_polarArea = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\tvar starts = me._starts = [];\r\n\t\tvar angles = me._angles = [];\r\n\t\tvar arcs = meta.data;\r\n\t\tvar i, ilen, angle;\r\n\r\n\t\tme._updateRadius();\r\n\r\n\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\tstarts[i] = start;\r\n\t\t\tangle = me._computeAngle(i);\r\n\t\t\tangles[i] = angle;\r\n\t\t\tstart += angle;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateRadius: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar scale = chart.scale;\r\n\t\tvar labels = chart.data.labels;\r\n\r\n\t\tvar centerX = scale.xCenter;\r\n\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar startAngle = me._starts[index];\r\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\t\t\t_scale: scale,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX,\r\n\t\t\t\ty: centerY,\r\n\t\t\t\tinnerRadius: 0,\r\n\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcountVisibleElements: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar count = 0;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn count;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_computeAngle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar count = this.getMeta().count;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\r\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: me.chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\treturn resolve$3([\r\n\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t(2 * Math.PI) / count\r\n\t\t], context, index);\r\n\t}\r\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\r\ncore_defaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\n// Pie charts are Doughnut chart with different defaults\r\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('radar', {\r\n\tspanGaps: false,\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\tfill: 'start',\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_radar = core_datasetController.extend({\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderWidth',\r\n\t\t'borderColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar config = me._config;\r\n\t\tvar i, ilen;\r\n\r\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\tconfig.lineTension = config.tension;\r\n\t\t}\r\n\r\n\t\t// Utility\r\n\t\tline._scale = scale;\r\n\t\tline._datasetIndex = me.index;\r\n\t\t// Data\r\n\t\tline._children = points;\r\n\t\tline._loop = true;\r\n\t\t// Model\r\n\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\tline.pivot();\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\t// Update bezier control points\r\n\t\tme.updateBezierControlPoints();\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar lineModel = me.getMeta().dataset._model;\r\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\r\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\r\n\r\n\t\t// Utility\r\n\t\tpoint._scale = scale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = me.index;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\r\n\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar options = me.chart.options;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar area = me.chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tmodel = points[i]._model;\r\n\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\r\n\t\t\t\tmodel,\r\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\r\n\t\t\t\tmodel.tension\r\n\t\t\t);\r\n\r\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\r\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\r\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\r\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\r\n\t\t}\r\n\t},\r\n\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\r\n\t}\r\n});\n\ncore_defaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tscatter: {\r\n\t\t\tshowLine: false\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// Scatter charts use line controllers\r\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\r\n// the class, and so must be CamelCase in order to be correctly retrieved\r\n// by the controller in core.controller.js (`controllers[meta.type]`).\r\n\r\nvar controllers = {\r\n\tbar: controller_bar,\r\n\tbubble: controller_bubble,\r\n\tdoughnut: controller_doughnut,\r\n\thorizontalBar: controller_horizontalBar,\r\n\tline: controller_line,\r\n\tpolarArea: controller_polarArea,\r\n\tpie: controller_pie,\r\n\tradar: controller_radar,\r\n\tscatter: controller_scatter\r\n};\n\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers$1.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\r\n\tvar metadata, i, j, ilen, jlen, element;\r\n\r\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\r\n\t\tmetadata = metasets[i].data;\r\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\r\n\t\t\telement = metadata[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\r\n\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t// don't count items that are skipped (null data)\r\n\t\tif (element && !element._view.skip) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nvar core_interaction = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\n\nvar extend = helpers$1.extend;\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers$1.where(array, function(v) {\r\n\t\treturn v.pos === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\treturn array.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0.index - v1.index :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n}\r\n\r\nfunction wrapBoxes(boxes) {\r\n\tvar layoutBoxes = [];\r\n\tvar i, ilen, box;\r\n\r\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\r\n\t\tbox = boxes[i];\r\n\t\tlayoutBoxes.push({\r\n\t\t\tindex: i,\r\n\t\t\tbox: box,\r\n\t\t\tpos: box.position,\r\n\t\t\thorizontal: box.isHorizontal(),\r\n\t\t\tweight: box.weight\r\n\t\t});\r\n\t}\r\n\treturn layoutBoxes;\r\n}\r\n\r\nfunction setLayoutDims(layouts, params) {\r\n\tvar i, ilen, layout;\r\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\r\n\t\tlayout = layouts[i];\r\n\t\t// store width used instead of chartArea.w in fitBoxes\r\n\t\tlayout.width = layout.horizontal\r\n\t\t\t? layout.box.fullWidth && params.availableWidth\r\n\t\t\t: params.vBoxMaxWidth;\r\n\t\t// store height used instead of chartArea.h in fitBoxes\r\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\r\n\t}\r\n}\r\n\r\nfunction buildLayoutBoxes(boxes) {\r\n\tvar layoutBoxes = wrapBoxes(boxes);\r\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\r\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\r\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\r\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\r\n\r\n\treturn {\r\n\t\tleftAndTop: left.concat(top),\r\n\t\trightAndBottom: right.concat(bottom),\r\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\r\n\t\tvertical: left.concat(right),\r\n\t\thorizontal: top.concat(bottom)\r\n\t};\r\n}\r\n\r\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\r\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\r\n}\r\n\r\nfunction updateDims(chartArea, params, layout) {\r\n\tvar box = layout.box;\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\tvar newWidth, newHeight;\r\n\r\n\tif (layout.size) {\r\n\t\t// this layout was already counted for, lets first reduce old size\r\n\t\tchartArea[layout.pos] -= layout.size;\r\n\t}\r\n\tlayout.size = layout.horizontal ? box.height : box.width;\r\n\tchartArea[layout.pos] += layout.size;\r\n\r\n\tif (box.getPadding) {\r\n\t\tvar boxPadding = box.getPadding();\r\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\r\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\r\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\r\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\r\n\t}\r\n\r\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\r\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\r\n\r\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\r\n\t\tchartArea.w = newWidth;\r\n\t\tchartArea.h = newHeight;\r\n\r\n\t\t// return true if chart area changed in layout's direction\r\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\r\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\r\n\t}\r\n}\r\n\r\nfunction handleMaxPadding(chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction updatePos(pos) {\r\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\r\n\t\tchartArea[pos] += change;\r\n\t\treturn change;\r\n\t}\r\n\tchartArea.y += updatePos('top');\r\n\tchartArea.x += updatePos('left');\r\n\tupdatePos('right');\r\n\tupdatePos('bottom');\r\n}\r\n\r\nfunction getMargins(horizontal, chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction marginForPositions(positions) {\r\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\r\n\t\tpositions.forEach(function(pos) {\r\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\r\n\t\t});\r\n\t\treturn margin;\r\n\t}\r\n\r\n\treturn horizontal\r\n\t\t? marginForPositions(['left', 'right'])\r\n\t\t: marginForPositions(['top', 'bottom']);\r\n}\r\n\r\nfunction fitBoxes(boxes, chartArea, params) {\r\n\tvar refitBoxes = [];\r\n\tvar i, ilen, layout, box, refit, changed;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\r\n\t\tbox.update(\r\n\t\t\tlayout.width || chartArea.w,\r\n\t\t\tlayout.height || chartArea.h,\r\n\t\t\tgetMargins(layout.horizontal, chartArea)\r\n\t\t);\r\n\t\tif (updateDims(chartArea, params, layout)) {\r\n\t\t\tchanged = true;\r\n\t\t\tif (refitBoxes.length) {\r\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\r\n\t\t\t\t// -> we have to refit those\r\n\t\t\t\trefit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\r\n\t\t\trefitBoxes.push(layout);\r\n\t\t}\r\n\t}\r\n\r\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\r\n}\r\n\r\nfunction placeBoxes(boxes, chartArea, params) {\r\n\tvar userPadding = params.padding;\r\n\tvar x = chartArea.x;\r\n\tvar y = chartArea.y;\r\n\tvar i, ilen, layout, box;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\t\tif (layout.horizontal) {\r\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\r\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\r\n\t\t\tbox.top = y;\r\n\t\t\tbox.bottom = y + box.height;\r\n\t\t\tbox.width = box.right - box.left;\r\n\t\t\ty = box.bottom;\r\n\t\t} else {\r\n\t\t\tbox.left = x;\r\n\t\t\tbox.right = x + box.width;\r\n\t\t\tbox.top = chartArea.top;\r\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\r\n\t\t\tbox.height = box.bottom - box.top;\r\n\t\t\tx = box.right;\r\n\t\t}\r\n\t}\r\n\r\n\tchartArea.x = x;\r\n\tchartArea.y = y;\r\n}\r\n\r\ncore_defaults._set('global', {\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nvar core_layouts = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\t\titem._layers = item._layers || function() {\r\n\t\t\treturn [{\r\n\t\t\t\tz: 0,\r\n\t\t\t\tdraw: function() {\r\n\t\t\t\t\titem.draw.apply(item, arguments);\r\n\t\t\t\t}\r\n\t\t\t}];\r\n\t\t};\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {ILayoutItem} item - the item to configure with the given options\r\n\t * @param {object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {number} width - the width to fit into\r\n\t * @param {number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\r\n\r\n\t\tvar availableWidth = width - padding.width;\r\n\t\tvar availableHeight = height - padding.height;\r\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\r\n\t\tvar verticalBoxes = boxes.vertical;\r\n\t\tvar horizontalBoxes = boxes.horizontal;\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\r\n\t\tvar params = Object.freeze({\r\n\t\t\touterWidth: width,\r\n\t\t\touterHeight: height,\r\n\t\t\tpadding: padding,\r\n\t\t\tavailableWidth: availableWidth,\r\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\r\n\t\t\thBoxMaxHeight: availableHeight / 2\r\n\t\t});\r\n\t\tvar chartArea = extend({\r\n\t\t\tmaxPadding: extend({}, padding),\r\n\t\t\tw: availableWidth,\r\n\t\t\th: availableHeight,\r\n\t\t\tx: padding.left,\r\n\t\t\ty: padding.top\r\n\t\t}, padding);\r\n\r\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\r\n\r\n\t\t// First fit vertical boxes\r\n\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\r\n\t\t// Then fit horizontal boxes\r\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\r\n\t\t\t// if the area changed, re-fit vertical boxes\r\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\t\t}\r\n\r\n\t\thandleMaxPadding(chartArea);\r\n\r\n\t\t// Finally place the boxes to correct coordinates\r\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\r\n\r\n\t\t// Move to opposite side of chart\r\n\t\tchartArea.x += chartArea.w;\r\n\t\tchartArea.y += chartArea.h;\r\n\r\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\r\n\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: chartArea.left,\r\n\t\t\ttop: chartArea.top,\r\n\t\t\tright: chartArea.left + chartArea.w,\r\n\t\t\tbottom: chartArea.top + chartArea.h\r\n\t\t};\r\n\r\n\t\t// Finally update boxes in chartArea (radial scale for example)\r\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\r\n\t\t\tvar box = layout.box;\r\n\t\t\textend(box, chart.chartArea);\r\n\t\t\tbox.update(chartArea.w, chartArea.h);\r\n\t\t});\r\n\t}\r\n};\n\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nvar platform_basic = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers$1.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\t// eslint-disable-next-line getter-return\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers$1.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction createDiv(cls) {\r\n\tvar el = document.createElement('div');\r\n\tel.className = cls || '';\r\n\treturn el;\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar maxSize = 1000000;\r\n\r\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\r\n\t// https://github.com/chartjs/Chart.js/issues/5902\r\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\r\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\r\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\r\n\r\n\texpand.appendChild(createDiv());\r\n\tshrink.appendChild(createDiv());\r\n\r\n\tresizer.appendChild(expand);\r\n\tresizer.appendChild(shrink);\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\r\n\t\t\tvar w = container ? container.clientWidth : 0;\r\n\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\r\n\t\t\t\t// If the container size shrank during chart resize, let's assume\r\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\r\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\r\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\r\n\t\t\t\t// events are ignored during this whole 2 resize process.\r\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\r\n\t\t\t\t// twice in a frame (potential performance issue)\r\n\t\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the "},this.getStyleTags=function(){return t.sealed?x(2):t._emitSheetCSS()},this.getStyleElement=function(){var e;if(t.sealed)return x(2);var n=((e={})[_]="",e["data-styled-version"]="5.3.5",e.dangerouslySetInnerHTML={__html:t.instance.toString()},e),r=L();return r&&(n.nonce=r),[o.a.createElement("style",d({},n,{key:"sc-0-0"}))]},this.seal=function(){t.sealed=!0},this.instance=new q({isServer:!0}),this.sealed=!1}var e=t.prototype;e.collectStyles=function(t){return this.sealed?x(2):o.a.createElement(st,{sheet:this.instance},t)},e.interleaveWithNodeStream=function(t){return x(3)}}();e.c=jt}).call(this,n(126))},function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"a",(function(){return o}));var r=n(0),i=r.isValidElement;function o(t,e){return function(t,e,n){return i(t)?r.cloneElement(t,"function"===typeof n?n(t.props||{}):n):e}(t,t,e)}},function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r="Invariant failed";function i(t,e){if(!t)throw new Error(r)}},,function(t,e,n){"use strict";function r(t,e,n,r,i,o,a){try{var u=t[o](a),s=u.value}catch(c){return void n(c)}u.done?e(s):Promise.resolve(s).then(r,i)}function i(t){return function(){var e=this,n=arguments;return new Promise((function(i,o){var a=t.apply(e,n);function u(t){r(a,i,o,u,s,"next",t)}function s(t){r(a,i,o,u,s,"throw",t)}u(void 0)}))}}n.d(e,"a",(function(){return i}))},function(t,e,n){"use strict";function r(t,e){return e||(e=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))}n.d(e,"a",(function(){return r}))},function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var r=function(){for(var t=arguments.length,e=new Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:1,n=C+=1;function r(e){if(0===e)N(n),t();else{var i=I((function(){r(e-1)}));P.set(n,i)}}return r(e),n}j.cancel=function(t){var e=P.get(t);return N(e),A(e)};var R=p()?u.useLayoutEffect:u.useEffect,D=["prepare","start","active","end"];function M(t){return"active"===t||"end"===t}var L=function(t,e){var n=T("none"),r=Object(o.a)(n,2),i=r[0],a=r[1],s=function(){var t=u.useRef(null);function e(){j.cancel(t.current)}return u.useEffect((function(){return function(){e()}}),[]),[function n(r){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;e();var o=j((function(){i<=1?r({isCanceled:function(){return o!==t.current}}):n(r,i-1)}));t.current=o},e]}(),c=Object(o.a)(s,2),l=c[0],f=c[1];return R((function(){if("none"!==i&&"end"!==i){var t=D.indexOf(i),n=D[t+1],r=e(i);!1===r?a(n,!0):l((function(t){function e(){t.isCanceled()||a(n,!0)}!0===r?e():Promise.resolve(r).then(e)}))}}),[t,i]),u.useEffect((function(){return function(){f()}}),[]),[function(){a("prepare",!0)},i]};function F(t,e,n,a){var s=a.motionEnter,c=void 0===s||s,l=a.motionAppear,f=void 0===l||l,h=a.motionLeave,d=void 0===h||h,p=a.motionDeadline,v=a.motionLeaveImmediately,m=a.onAppearPrepare,y=a.onEnterPrepare,g=a.onLeavePrepare,b=a.onAppearStart,w=a.onEnterStart,_=a.onLeaveStart,E=a.onAppearActive,O=a.onEnterActive,k=a.onLeaveActive,I=a.onAppearEnd,A=a.onEnterEnd,C=a.onLeaveEnd,P=a.onVisibleChanged,N=T(),j=Object(o.a)(N,2),D=j[0],F=j[1],U=T("none"),V=Object(o.a)(U,2),B=V[0],z=V[1],H=T(null),q=Object(o.a)(H,2),W=q[0],G=q[1],Y=Object(u.useRef)(!1),$=Object(u.useRef)(null);function K(){return n()}var X=Object(u.useRef)(!1);function Q(t){var e=K();if(!t||t.deadline||t.target===e){var n,r=X.current;"appear"===B&&r?n=null===I||void 0===I?void 0:I(e,t):"enter"===B&&r?n=null===A||void 0===A?void 0:A(e,t):"leave"===B&&r&&(n=null===C||void 0===C?void 0:C(e,t)),"none"!==B&&r&&!1!==n&&(z("none",!0),G(null,!0))}}var J=function(t){var e=Object(u.useRef)(),n=Object(u.useRef)(t);n.current=t;var r=u.useCallback((function(t){n.current(t)}),[]);function i(t){t&&(t.removeEventListener(x,r),t.removeEventListener(S,r))}return u.useEffect((function(){return function(){i(e.current)}}),[]),[function(t){e.current&&e.current!==t&&i(e.current),t&&t!==e.current&&(t.addEventListener(x,r),t.addEventListener(S,r),e.current=t)},i]}(Q),Z=Object(o.a)(J,1)[0],tt=u.useMemo((function(){var t,e,n;switch(B){case"appear":return t={},Object(r.a)(t,"prepare",m),Object(r.a)(t,"start",b),Object(r.a)(t,"active",E),t;case"enter":return e={},Object(r.a)(e,"prepare",y),Object(r.a)(e,"start",w),Object(r.a)(e,"active",O),e;case"leave":return n={},Object(r.a)(n,"prepare",g),Object(r.a)(n,"start",_),Object(r.a)(n,"active",k),n;default:return{}}}),[B]),et=L(B,(function(t){if("prepare"===t){var e=tt.prepare;return!!e&&e(K())}var n;it in tt&&G((null===(n=tt[it])||void 0===n?void 0:n.call(tt,K(),null))||null);return"active"===it&&(Z(K()),p>0&&(clearTimeout($.current),$.current=setTimeout((function(){Q({deadline:!0})}),p))),!0})),nt=Object(o.a)(et,2),rt=nt[0],it=nt[1],ot=M(it);X.current=ot,R((function(){F(e);var n,r=Y.current;(Y.current=!0,t)&&(!r&&e&&f&&(n="appear"),r&&e&&c&&(n="enter"),(r&&!e&&d||!r&&v&&!e&&d)&&(n="leave"),n&&(z(n),rt()))}),[e]),Object(u.useEffect)((function(){("appear"===B&&!f||"enter"===B&&!c||"leave"===B&&!d)&&z("none")}),[f,c,d]),Object(u.useEffect)((function(){return function(){Y.current=!1,clearTimeout($.current)}}),[]),Object(u.useEffect)((function(){void 0!==D&&"none"===B&&(null===P||void 0===P||P(D))}),[D,B]);var at=W;return tt.prepare&&"start"===it&&(at=Object(i.a)({transition:"none"},at)),[B,it,at,null!==D&&void 0!==D?D:e]}var U=n(16),V=n(17),B=n(19),z=n(20),H=function(t){Object(B.a)(n,t);var e=Object(z.a)(n);function n(){return Object(U.a)(this,n),e.apply(this,arguments)}return Object(V.a)(n,[{key:"render",value:function(){return this.props.children}}]),n}(u.Component);var q=function(t){var e=t;function n(t){return!(!t.motionName||!e)}"object"===Object(a.a)(t)&&(e=t.transitionSupport);var s=u.forwardRef((function(t,e){var a=t.visible,s=void 0===a||a,h=t.removeOnLeave,p=void 0===h||h,v=t.forceRender,m=t.children,y=t.motionName,g=t.leavedClassName,b=t.eventProps,w=n(t),_=Object(u.useRef)(),E=Object(u.useRef)();var O=F(w,s,(function(){try{return _.current instanceof HTMLElement?_.current:(t=E.current)instanceof HTMLElement?t:c.a.findDOMNode(t)}catch(e){return null}var t}),t),S=Object(o.a)(O,4),x=S[0],T=S[1],I=S[2],A=S[3],C=u.useRef(A);A&&(C.current=!0);var P,N=u.useCallback((function(t){_.current=t,f(e,t)}),[e]),j=Object(i.a)(Object(i.a)({},b),{},{visible:s});if(m)if("none"!==x&&n(t)){var R,D;"prepare"===T?D="prepare":M(T)?D="active":"start"===T&&(D="start"),P=m(Object(i.a)(Object(i.a)({},j),{},{className:d()(k(y,x),(R={},Object(r.a)(R,k(y,"".concat(x,"-").concat(D)),D),Object(r.a)(R,y,"string"===typeof y),R)),style:I}),N)}else P=A?m(Object(i.a)({},j),N):!p&&C.current?m(Object(i.a)(Object(i.a)({},j),{},{className:g}),N):v?m(Object(i.a)(Object(i.a)({},j),{},{style:{display:"none"}}),N):null;else P=null;u.isValidElement(P)&&function(t){var e,n,r=Object(l.isMemo)(t)?t.type.type:t.type;return!("function"===typeof r&&!(null===(e=r.prototype)||void 0===e?void 0:e.render))&&!("function"===typeof t&&!(null===(n=t.prototype)||void 0===n?void 0:n.render))}(P)&&(P.ref||(P=u.cloneElement(P,{ref:N})));return u.createElement(H,{ref:E},P)}));return s.displayName="CSSMotion",s}(O),W=n(4),G=n(25);function Y(t){var e;return e=t&&"object"===Object(a.a)(t)&&"key"in t?t:{key:t},Object(i.a)(Object(i.a)({},e),{},{key:String(e.key)})}function $(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return t.map(Y)}function K(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],r=0,o=e.length,a=$(t),u=$(e);a.forEach((function(t){for(var e=!1,a=r;a1}));return c.forEach((function(t){(n=n.filter((function(e){var n=e.key,r=e.status;return n!==t||"remove"!==r}))).forEach((function(e){e.key===t&&(e.status="keep")}))})),n}var X=["component","children","onVisibleChanged","onAllRemoved"],Q=["status"],J=["eventProps","visible","children","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd"];var Z=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:q,n=function(t){Object(B.a)(r,t);var n=Object(z.a)(r);function r(){var t;Object(U.a)(this,r);for(var e=arguments.length,o=new Array(e),a=0;a2?p-2:0),y=2;y1&&void 0!==arguments[1]?arguments[1]:1,n=x+=1;function r(e){if(0===e)T(n),t();else{var i=O((function(){r(e-1)}));k.set(n,i)}}return r(e),n}I.cancel=function(t){var e=k.get(t);return T(e),S(e)};var A=0,C={};function P(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=A++,r=e;function i(){(r-=1)<=0?(t(),delete C[n]):C[n]=I(i)}return C[n]=I(i),n}P.cancel=function(t){void 0!==t&&(I.cancel(C[t]),delete C[t])},P.ids=C;var N,j=n(32);function R(t){return!t||null===t.offsetParent||t.hidden}function D(t){var e=(t||"").match(/rgba?\((\d*), (\d*), (\d*)(, [\d.]*)?\)/);return!(e&&e[1]&&e[2]&&e[3])||!(e[1]===e[2]&&e[2]===e[3])}var M=function(t){Object(b.a)(n,t);var e=Object(w.a)(n);function n(){var t;return Object(m.a)(this,n),(t=e.apply(this,arguments)).containerRef=u.createRef(),t.animationStart=!1,t.destroyed=!1,t.onClick=function(e,n){var r,i,o=t.props,a=o.insertExtraNode;if(!(o.disabled||!e||R(e)||e.className.indexOf("-leave")>=0)){t.extraNode=document.createElement("div");var u=Object(g.a)(t).extraNode,s=t.context.getPrefixCls;u.className="".concat(s(""),"-click-animating-node");var c=t.getAttributeName();if(e.setAttribute(c,"true"),n&&"#ffffff"!==n&&"rgb(255, 255, 255)"!==n&&D(n)&&!/rgba\((?:\d*, ){3}0\)/.test(n)&&"transparent"!==n){u.style.borderColor=n;var l=(null===(r=e.getRootNode)||void 0===r?void 0:r.call(e))||e.ownerDocument,f=l instanceof Document?l.body:null!==(i=l.firstChild)&&void 0!==i?i:l;N=Object(_.a)("\n [".concat(s(""),"-click-animating-without-extra-node='true']::after, .").concat(s(""),"-click-animating-node {\n --antd-wave-shadow-color: ").concat(n,";\n }"),"antd-wave",{csp:t.csp,attachTo:f})}a&&e.appendChild(u),["transition","animation"].forEach((function(n){e.addEventListener("".concat(n,"start"),t.onTransitionStart),e.addEventListener("".concat(n,"end"),t.onTransitionEnd)}))}},t.onTransitionStart=function(e){if(!t.destroyed){var n=t.containerRef.current;e&&e.target===n&&!t.animationStart&&t.resetEffect(n)}},t.onTransitionEnd=function(e){e&&"fadeEffect"===e.animationName&&t.resetEffect(e.target)},t.bindAnimationEvent=function(e){if(e&&e.getAttribute&&!e.getAttribute("disabled")&&!(e.className.indexOf("disabled")>=0)){var n=function(n){if("INPUT"!==n.target.tagName&&!R(n.target)){t.resetEffect(e);var r=getComputedStyle(e).getPropertyValue("border-top-color")||getComputedStyle(e).getPropertyValue("border-color")||getComputedStyle(e).getPropertyValue("background-color");t.clickWaveTimeoutId=window.setTimeout((function(){return t.onClick(e,r)}),0),P.cancel(t.animationStartId),t.animationStart=!0,t.animationStartId=P((function(){t.animationStart=!1}),10)}};return e.addEventListener("click",n,!0),{cancel:function(){e.removeEventListener("click",n,!0)}}}},t.renderWave=function(e){var n=e.csp,r=t.props.children;if(t.csp=n,!u.isValidElement(r))return r;var i=t.containerRef;return Object(E.b)(r)&&(i=Object(E.a)(r.ref,t.containerRef)),Object(j.a)(r,{ref:i})},t}return Object(y.a)(n,[{key:"componentDidMount",value:function(){var t=this.containerRef.current;t&&1===t.nodeType&&(this.instance=this.bindAnimationEvent(t))}},{key:"componentWillUnmount",value:function(){this.instance&&this.instance.cancel(),this.clickWaveTimeoutId&&clearTimeout(this.clickWaveTimeoutId),this.destroyed=!0}},{key:"getAttributeName",value:function(){var t=this.context.getPrefixCls,e=this.props.insertExtraNode;return"".concat(t(""),e?"-click-animating":"-click-animating-without-extra-node")}},{key:"resetEffect",value:function(t){var e=this;if(t&&t!==this.extraNode&&t instanceof Element){var n=this.props.insertExtraNode,r=this.getAttributeName();t.setAttribute(r,"false"),N&&(N.innerHTML=""),n&&this.extraNode&&t.contains(this.extraNode)&&t.removeChild(this.extraNode),["transition","animation"].forEach((function(n){t.removeEventListener("".concat(n,"start"),e.onTransitionStart),t.removeEventListener("".concat(n,"end"),e.onTransitionEnd)}))}}},{key:"render",value:function(){return u.createElement(h.a,null,this.renderWave)}}]),n}(u.Component);M.contextType=h.b;var L=n(37),F=n(40),U=n(45),V=n(87),B=function(){return{width:0,opacity:0,transform:"scale(0)"}},z=function(t){return{width:t.scrollWidth,opacity:1,transform:"scale(1)"}},H=function(t){var e=t.prefixCls,n=!!t.loading;return t.existIcon?s.a.createElement("span",{className:"".concat(e,"-loading-icon")},s.a.createElement(V.a,null)):s.a.createElement(U.b,{visible:n,motionName:"".concat(e,"-loading-icon-motion"),removeOnLeave:!0,onAppearStart:B,onAppearActive:z,onEnterStart:B,onEnterActive:z,onLeaveStart:z,onLeaveActive:B},(function(t,n){var r=t.className,i=t.style;return s.a.createElement("span",{className:"".concat(e,"-loading-icon"),style:i,ref:n},s.a.createElement(V.a,{className:r}))}))},q=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"===typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(t);it.length)&&(e=t.length);for(var n=0,r=new Array(e);n>>0;for(e=0;e0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+r}r.suppressDeprecationWarnings=!1,r.deprecationHandler=null,S=Object.keys?Object.keys:function(t){var e,n=[];for(e in t)a(t,e)&&n.push(e);return n};var P=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,N=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,j={},R={};function D(t,e,n,r){var i=r;"string"===typeof r&&(i=function(){return this[r]()}),t&&(R[t]=i),e&&(R[e[0]]=function(){return C(i.apply(this,arguments),e[1],e[2])}),n&&(R[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),t)})}function M(t,e){return t.isValid()?(e=L(e,t.localeData()),j[e]=j[e]||function(t){var e,n,r,i=t.match(P);for(e=0,n=i.length;e=0&&N.test(t);)t=t.replace(N,r),N.lastIndex=0,n-=1;return t}var F={};function U(t,e){var n=t.toLowerCase();F[n]=F[n+"s"]=F[e]=t}function V(t){return"string"===typeof t?F[t]||F[t.toLowerCase()]:void 0}function B(t){var e,n,r={};for(n in t)a(t,n)&&(e=V(n))&&(r[e]=t[n]);return r}var z={};function H(t,e){z[t]=e}function q(t){return t%4===0&&t%100!==0||t%400===0}function W(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function G(t){var e=+t,n=0;return 0!==e&&isFinite(e)&&(n=W(e)),n}function Y(t,e){return function(n){return null!=n?(K(this,t,n),r.updateOffset(this,e),this):$(this,t)}}function $(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function K(t,e,n){t.isValid()&&!isNaN(n)&&("FullYear"===e&&q(t.year())&&1===t.month()&&29===t.date()?(n=G(n),t._d["set"+(t._isUTC?"UTC":"")+e](n,t.month(),_t(n,t.month()))):t._d["set"+(t._isUTC?"UTC":"")+e](n))}var X,Q=/\d/,J=/\d\d/,Z=/\d{3}/,tt=/\d{4}/,et=/[+-]?\d{6}/,nt=/\d\d?/,rt=/\d\d\d\d?/,it=/\d\d\d\d\d\d?/,ot=/\d{1,3}/,at=/\d{1,4}/,ut=/[+-]?\d{1,6}/,st=/\d+/,ct=/[+-]?\d+/,lt=/Z|[+-]\d\d:?\d\d/gi,ft=/Z|[+-]\d\d(?::?\d\d)?/gi,ht=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;function dt(t,e,n){X[t]=T(e)?e:function(t,r){return t&&n?n:e}}function pt(t,e){return a(X,t)?X[t](e._strict,e._locale):new RegExp(vt(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,n,r,i){return e||n||r||i}))))}function vt(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}X={};var mt,yt={};function gt(t,e){var n,r,i=e;for("string"===typeof t&&(t=[t]),c(e)&&(i=function(t,n){n[e]=G(t)}),r=t.length,n=0;n68?1900:2e3)};var Nt=Y("FullYear",!0);function jt(t,e,n,r,i,o,a){var u;return t<100&&t>=0?(u=new Date(t+400,e,n,r,i,o,a),isFinite(u.getFullYear())&&u.setFullYear(t)):u=new Date(t,e,n,r,i,o,a),u}function Rt(t){var e,n;return t<100&&t>=0?((n=Array.prototype.slice.call(arguments))[0]=t+400,e=new Date(Date.UTC.apply(null,n)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)):e=new Date(Date.UTC.apply(null,arguments)),e}function Dt(t,e,n){var r=7+e-n;return-(7+Rt(t,0,r).getUTCDay()-e)%7+r-1}function Mt(t,e,n,r,i){var o,a,u=1+7*(e-1)+(7+n-r)%7+Dt(t,r,i);return u<=0?a=Pt(o=t-1)+u:u>Pt(t)?(o=t+1,a=u-Pt(t)):(o=t,a=u),{year:o,dayOfYear:a}}function Lt(t,e,n){var r,i,o=Dt(t.year(),e,n),a=Math.floor((t.dayOfYear()-o-1)/7)+1;return a<1?r=a+Ft(i=t.year()-1,e,n):a>Ft(t.year(),e,n)?(r=a-Ft(t.year(),e,n),i=t.year()+1):(i=t.year(),r=a),{week:r,year:i}}function Ft(t,e,n){var r=Dt(t,e,n),i=Dt(t+1,e,n);return(Pt(t)-r+i)/7}function Ut(t,e){return t.slice(e,7).concat(t.slice(0,e))}D("w",["ww",2],"wo","week"),D("W",["WW",2],"Wo","isoWeek"),U("week","w"),U("isoWeek","W"),H("week",5),H("isoWeek",5),dt("w",nt),dt("ww",nt,J),dt("W",nt),dt("WW",nt,J),bt(["w","ww","W","WW"],(function(t,e,n,r){e[r.substr(0,1)]=G(t)})),D("d",0,"do","day"),D("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),D("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),D("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),D("e",0,0,"weekday"),D("E",0,0,"isoWeekday"),U("day","d"),U("weekday","e"),U("isoWeekday","E"),H("day",11),H("weekday",11),H("isoWeekday",11),dt("d",nt),dt("e",nt),dt("E",nt),dt("dd",(function(t,e){return e.weekdaysMinRegex(t)})),dt("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),dt("dddd",(function(t,e){return e.weekdaysRegex(t)})),bt(["dd","ddd","dddd"],(function(t,e,n,r){var i=n._locale.weekdaysParse(t,r,n._strict);null!=i?e.d=i:p(n).invalidWeekday=t})),bt(["d","e","E"],(function(t,e,n,r){e[r]=G(t)}));var Vt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Bt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),zt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ht=ht,qt=ht,Wt=ht;function Gt(t,e,n){var r,i,o,a=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)o=d([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===e?-1!==(i=mt.call(this._weekdaysParse,a))?i:null:"ddd"===e?-1!==(i=mt.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=mt.call(this._minWeekdaysParse,a))?i:null:"dddd"===e?-1!==(i=mt.call(this._weekdaysParse,a))||-1!==(i=mt.call(this._shortWeekdaysParse,a))||-1!==(i=mt.call(this._minWeekdaysParse,a))?i:null:"ddd"===e?-1!==(i=mt.call(this._shortWeekdaysParse,a))||-1!==(i=mt.call(this._weekdaysParse,a))||-1!==(i=mt.call(this._minWeekdaysParse,a))?i:null:-1!==(i=mt.call(this._minWeekdaysParse,a))||-1!==(i=mt.call(this._weekdaysParse,a))||-1!==(i=mt.call(this._shortWeekdaysParse,a))?i:null}function Yt(){function t(t,e){return e.length-t.length}var e,n,r,i,o,a=[],u=[],s=[],c=[];for(e=0;e<7;e++)n=d([2e3,1]).day(e),r=vt(this.weekdaysMin(n,"")),i=vt(this.weekdaysShort(n,"")),o=vt(this.weekdays(n,"")),a.push(r),u.push(i),s.push(o),c.push(r),c.push(i),c.push(o);a.sort(t),u.sort(t),s.sort(t),c.sort(t),this._weekdaysRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function $t(){return this.hours()%12||12}function Kt(t,e){D(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function Xt(t,e){return e._meridiemParse}D("H",["HH",2],0,"hour"),D("h",["hh",2],0,$t),D("k",["kk",2],0,(function(){return this.hours()||24})),D("hmm",0,0,(function(){return""+$t.apply(this)+C(this.minutes(),2)})),D("hmmss",0,0,(function(){return""+$t.apply(this)+C(this.minutes(),2)+C(this.seconds(),2)})),D("Hmm",0,0,(function(){return""+this.hours()+C(this.minutes(),2)})),D("Hmmss",0,0,(function(){return""+this.hours()+C(this.minutes(),2)+C(this.seconds(),2)})),Kt("a",!0),Kt("A",!1),U("hour","h"),H("hour",13),dt("a",Xt),dt("A",Xt),dt("H",nt),dt("h",nt),dt("k",nt),dt("HH",nt,J),dt("hh",nt,J),dt("kk",nt,J),dt("hmm",rt),dt("hmmss",it),dt("Hmm",rt),dt("Hmmss",it),gt(["H","HH"],3),gt(["k","kk"],(function(t,e,n){var r=G(t);e[3]=24===r?0:r})),gt(["a","A"],(function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t})),gt(["h","hh"],(function(t,e,n){e[3]=G(t),p(n).bigHour=!0})),gt("hmm",(function(t,e,n){var r=t.length-2;e[3]=G(t.substr(0,r)),e[4]=G(t.substr(r)),p(n).bigHour=!0})),gt("hmmss",(function(t,e,n){var r=t.length-4,i=t.length-2;e[3]=G(t.substr(0,r)),e[4]=G(t.substr(r,2)),e[5]=G(t.substr(i)),p(n).bigHour=!0})),gt("Hmm",(function(t,e,n){var r=t.length-2;e[3]=G(t.substr(0,r)),e[4]=G(t.substr(r))})),gt("Hmmss",(function(t,e,n){var r=t.length-4,i=t.length-2;e[3]=G(t.substr(0,r)),e[4]=G(t.substr(r,2)),e[5]=G(t.substr(i))}));var Qt,Jt=Y("Hours",!0),Zt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Et,monthsShort:Ot,week:{dow:0,doy:6},weekdays:Vt,weekdaysMin:zt,weekdaysShort:Bt,meridiemParse:/[ap]\.?m?\.?/i},te={},ee={};function ne(t,e){var n,r=Math.min(t.length,e.length);for(n=0;n0;){if(r=ie(i.slice(0,e).join("-")))return r;if(n&&n.length>=e&&ne(i,n)>=e-1)break;e--}o++}return Qt}(t)}function se(t){var e,n=t._a;return n&&-2===p(t).overflow&&(e=n[1]<0||n[1]>11?1:n[2]<1||n[2]>_t(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,p(t)._overflowDayOfYear&&(e<0||e>2)&&(e=2),p(t)._overflowWeeks&&-1===e&&(e=7),p(t)._overflowWeekday&&-1===e&&(e=8),p(t).overflow=e),t}var ce=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,le=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,fe=/Z|[+-]\d\d(?::?\d\d)?/,he=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],de=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pe=/^\/?Date\((-?\d+)/i,ve=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,me={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function ye(t){var e,n,r,i,o,a,u=t._i,s=ce.exec(u)||le.exec(u),c=he.length,l=de.length;if(s){for(p(t).iso=!0,e=0,n=c;e7)&&(s=!0)):(o=t._locale._week.dow,a=t._locale._week.doy,c=Lt(xe(),o,a),n=we(e.gg,t._a[0],c.year),r=we(e.w,c.week),null!=e.d?((i=e.d)<0||i>6)&&(s=!0):null!=e.e?(i=e.e+o,(e.e<0||e.e>6)&&(s=!0)):i=o),r<1||r>Ft(n,o,a)?p(t)._overflowWeeks=!0:null!=s?p(t)._overflowWeekday=!0:(u=Mt(n,r,i,o,a),t._a[0]=u.year,t._dayOfYear=u.dayOfYear)}(t),null!=t._dayOfYear&&(a=we(t._a[0],i[0]),(t._dayOfYear>Pt(a)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),n=Rt(a,0,t._dayOfYear),t._a[1]=n.getUTCMonth(),t._a[2]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=u[e]=i[e];for(;e<7;e++)t._a[e]=u[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[3]&&0===t._a[4]&&0===t._a[5]&&0===t._a[6]&&(t._nextDay=!0,t._a[3]=0),t._d=(t._useUTC?Rt:jt).apply(null,u),o=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[3]=24),t._w&&"undefined"!==typeof t._w.d&&t._w.d!==o&&(p(t).weekdayMismatch=!0)}}function Ee(t){if(t._f!==r.ISO_8601)if(t._f!==r.RFC_2822){t._a=[],p(t).empty=!0;var e,n,i,o,a,u,s,c=""+t._i,l=c.length,f=0;for(s=(i=L(t._f,t._locale).match(P)||[]).length,e=0;e0&&p(t).unusedInput.push(a),c=c.slice(c.indexOf(n)+n.length),f+=n.length),R[o]?(n?p(t).empty=!1:p(t).unusedTokens.push(o),wt(o,n,t)):t._strict&&!n&&p(t).unusedTokens.push(o);p(t).charsLeftOver=l-f,c.length>0&&p(t).unusedInput.push(c),t._a[3]<=12&&!0===p(t).bigHour&&t._a[3]>0&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[3]=function(t,e,n){var r;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?((r=t.isPM(n))&&e<12&&(e+=12),r||12!==e||(e=0),e):e}(t._locale,t._a[3],t._meridiem),null!==(u=p(t).era)&&(t._a[0]=t._locale.erasConvertYear(u,t._a[0])),_e(t),se(t)}else be(t);else ye(t)}function Oe(t){var e=t._i,n=t._f;return t._locale=t._locale||ue(t._l),null===e||void 0===n&&""===e?m({nullInput:!0}):("string"===typeof e&&(t._i=e=t._locale.preparse(e)),_(e)?new w(se(e)):(l(e)?t._d=e:i(n)?function(t){var e,n,r,i,o,a,u=!1,s=t._f.length;if(0===s)return p(t).invalidFormat=!0,void(t._d=new Date(NaN));for(i=0;ithis?this:t:m()}));function Ie(t,e){var n,r;if(1===e.length&&i(e[0])&&(e=e[0]),!e.length)return xe();for(n=e[0],r=1;r=0?new Date(t+400,e,n)-126227808e5:new Date(t,e,n).valueOf()}function rn(t,e,n){return t<100&&t>=0?Date.UTC(t+400,e,n)-126227808e5:Date.UTC(t,e,n)}function on(t,e){return e.erasAbbrRegex(t)}function an(){var t,e,n=[],r=[],i=[],o=[],a=this.eras();for(t=0,e=a.length;t(o=Ft(t,r,i))&&(e=o),cn.call(this,t,e,n,r,i))}function cn(t,e,n,r,i){var o=Mt(t,e,n,r,i),a=Rt(o.year,0,o.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}D("N",0,0,"eraAbbr"),D("NN",0,0,"eraAbbr"),D("NNN",0,0,"eraAbbr"),D("NNNN",0,0,"eraName"),D("NNNNN",0,0,"eraNarrow"),D("y",["y",1],"yo","eraYear"),D("y",["yy",2],0,"eraYear"),D("y",["yyy",3],0,"eraYear"),D("y",["yyyy",4],0,"eraYear"),dt("N",on),dt("NN",on),dt("NNN",on),dt("NNNN",(function(t,e){return e.erasNameRegex(t)})),dt("NNNNN",(function(t,e){return e.erasNarrowRegex(t)})),gt(["N","NN","NNN","NNNN","NNNNN"],(function(t,e,n,r){var i=n._locale.erasParse(t,r,n._strict);i?p(n).era=i:p(n).invalidEra=t})),dt("y",st),dt("yy",st),dt("yyy",st),dt("yyyy",st),dt("yo",(function(t,e){return e._eraYearOrdinalRegex||st})),gt(["y","yy","yyy","yyyy"],0),gt(["yo"],(function(t,e,n,r){var i;n._locale._eraYearOrdinalRegex&&(i=t.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?e[0]=n._locale.eraYearOrdinalParse(t,i):e[0]=parseInt(t,10)})),D(0,["gg",2],0,(function(){return this.weekYear()%100})),D(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),un("gggg","weekYear"),un("ggggg","weekYear"),un("GGGG","isoWeekYear"),un("GGGGG","isoWeekYear"),U("weekYear","gg"),U("isoWeekYear","GG"),H("weekYear",1),H("isoWeekYear",1),dt("G",ct),dt("g",ct),dt("GG",nt,J),dt("gg",nt,J),dt("GGGG",at,tt),dt("gggg",at,tt),dt("GGGGG",ut,et),dt("ggggg",ut,et),bt(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,n,r){e[r.substr(0,2)]=G(t)})),bt(["gg","GG"],(function(t,e,n,i){e[i]=r.parseTwoDigitYear(t)})),D("Q",0,"Qo","quarter"),U("quarter","Q"),H("quarter",7),dt("Q",Q),gt("Q",(function(t,e){e[1]=3*(G(t)-1)})),D("D",["DD",2],"Do","date"),U("date","D"),H("date",9),dt("D",nt),dt("DD",nt,J),dt("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),gt(["D","DD"],2),gt("Do",(function(t,e){e[2]=G(t.match(nt)[0])}));var ln=Y("Date",!0);D("DDD",["DDDD",3],"DDDo","dayOfYear"),U("dayOfYear","DDD"),H("dayOfYear",4),dt("DDD",ot),dt("DDDD",Z),gt(["DDD","DDDD"],(function(t,e,n){n._dayOfYear=G(t)})),D("m",["mm",2],0,"minute"),U("minute","m"),H("minute",14),dt("m",nt),dt("mm",nt,J),gt(["m","mm"],4);var fn=Y("Minutes",!1);D("s",["ss",2],0,"second"),U("second","s"),H("second",15),dt("s",nt),dt("ss",nt,J),gt(["s","ss"],5);var hn,dn,pn=Y("Seconds",!1);for(D("S",0,0,(function(){return~~(this.millisecond()/100)})),D(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),D(0,["SSS",3],0,"millisecond"),D(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),D(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),D(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),D(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),D(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),D(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),U("millisecond","ms"),H("millisecond",16),dt("S",ot,Q),dt("SS",ot,J),dt("SSS",ot,Z),hn="SSSS";hn.length<=9;hn+="S")dt(hn,st);function vn(t,e){e[6]=G(1e3*("0."+t))}for(hn="S";hn.length<=9;hn+="S")gt(hn,vn);dn=Y("Milliseconds",!1),D("z",0,0,"zoneAbbr"),D("zz",0,0,"zoneName");var mn=w.prototype;function yn(t){return t}mn.add=Ge,mn.calendar=function(t,e){1===arguments.length&&(arguments[0]?Ke(arguments[0])?(t=arguments[0],e=void 0):Xe(arguments[0])&&(e=arguments[0],t=void 0):(t=void 0,e=void 0));var n=t||xe(),i=Me(n,this).startOf("day"),o=r.calendarFormat(this,i)||"sameElse",a=e&&(T(e[o])?e[o].call(this,n):e[o]);return this.format(a||this.localeData().calendar(o,this,xe(n)))},mn.clone=function(){return new w(this)},mn.diff=function(t,e,n){var r,i,o;if(!this.isValid())return NaN;if(!(r=Me(t,this)).isValid())return NaN;switch(i=6e4*(r.utcOffset()-this.utcOffset()),e=V(e)){case"year":o=Qe(this,r)/12;break;case"month":o=Qe(this,r);break;case"quarter":o=Qe(this,r)/3;break;case"second":o=(this-r)/1e3;break;case"minute":o=(this-r)/6e4;break;case"hour":o=(this-r)/36e5;break;case"day":o=(this-r-i)/864e5;break;case"week":o=(this-r-i)/6048e5;break;default:o=this-r}return n?o:W(o)},mn.endOf=function(t){var e,n;if(void 0===(t=V(t))||"millisecond"===t||!this.isValid())return this;switch(n=this._isUTC?rn:nn,t){case"year":e=n(this.year()+1,0,1)-1;break;case"quarter":e=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=n(this.year(),this.month()+1,1)-1;break;case"week":e=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=36e5-en(e+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":e=this._d.valueOf(),e+=6e4-en(e,6e4)-1;break;case"second":e=this._d.valueOf(),e+=1e3-en(e,1e3)-1}return this._d.setTime(e),r.updateOffset(this,!0),this},mn.format=function(t){t||(t=this.isUtc()?r.defaultFormatUtc:r.defaultFormat);var e=M(this,t);return this.localeData().postformat(e)},mn.from=function(t,e){return this.isValid()&&(_(t)&&t.isValid()||xe(t).isValid())?Be({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},mn.fromNow=function(t){return this.from(xe(),t)},mn.to=function(t,e){return this.isValid()&&(_(t)&&t.isValid()||xe(t).isValid())?Be({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},mn.toNow=function(t){return this.to(xe(),t)},mn.get=function(t){return T(this[t=V(t)])?this[t]():this},mn.invalidAt=function(){return p(this).overflow},mn.isAfter=function(t,e){var n=_(t)?t:xe(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=V(e)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()9999?M(n,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):T(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",M(n,"Z")):M(n,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},mn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t,e,n,r="moment",i="";return this.isLocal()||(r=0===this.utcOffset()?"moment.utc":"moment.parseZone",i="Z"),t="["+r+'("]',e=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=i+'[")]',this.format(t+e+"-MM-DD[T]HH:mm:ss.SSS"+n)},"undefined"!==typeof Symbol&&null!=Symbol.for&&(mn[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),mn.toJSON=function(){return this.isValid()?this.toISOString():null},mn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},mn.unix=function(){return Math.floor(this.valueOf()/1e3)},mn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},mn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},mn.eraName=function(){var t,e,n,r=this.localeData().eras();for(t=0,e=r.length;tthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},mn.isLocal=function(){return!!this.isValid()&&!this._isUTC},mn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},mn.isUtc=Fe,mn.isUTC=Fe,mn.zoneAbbr=function(){return this._isUTC?"UTC":""},mn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},mn.dates=O("dates accessor is deprecated. Use date instead.",ln),mn.months=O("months accessor is deprecated. Use month instead",At),mn.years=O("years accessor is deprecated. Use year instead",Nt),mn.zone=O("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(t,e){return null!=t?("string"!==typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()})),mn.isDSTShifted=O("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t,e={};return b(e,this),(e=Oe(e))._a?(t=e._isUTC?d(e._a):xe(e._a),this._isDSTShifted=this.isValid()&&function(t,e,n){var r,i=Math.min(t.length,e.length),o=Math.abs(t.length-e.length),a=0;for(r=0;r0):this._isDSTShifted=!1,this._isDSTShifted}));var gn=A.prototype;function bn(t,e,n,r){var i=ue(),o=d().set(r,e);return i[n](o,t)}function wn(t,e,n){if(c(t)&&(e=t,t=void 0),t=t||"",null!=e)return bn(t,e,n,"month");var r,i=[];for(r=0;r<12;r++)i[r]=bn(t,r,n,"month");return i}function _n(t,e,n,r){"boolean"===typeof t?(c(e)&&(n=e,e=void 0),e=e||""):(n=e=t,t=!1,c(e)&&(n=e,e=void 0),e=e||"");var i,o=ue(),a=t?o._week.dow:0,u=[];if(null!=n)return bn(e,(n+a)%7,r,"day");for(i=0;i<7;i++)u[i]=bn(e,(i+a)%7,r,"day");return u}gn.calendar=function(t,e,n){var r=this._calendar[t]||this._calendar.sameElse;return T(r)?r.call(e,n):r},gn.longDateFormat=function(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.match(P).map((function(t){return"MMMM"===t||"MM"===t||"DD"===t||"dddd"===t?t.slice(1):t})).join(""),this._longDateFormat[t])},gn.invalidDate=function(){return this._invalidDate},gn.ordinal=function(t){return this._ordinal.replace("%d",t)},gn.preparse=yn,gn.postformat=yn,gn.relativeTime=function(t,e,n,r){var i=this._relativeTime[n];return T(i)?i(t,e,n,r):i.replace(/%d/i,t)},gn.pastFuture=function(t,e){var n=this._relativeTime[t>0?"future":"past"];return T(n)?n(e):n.replace(/%s/i,e)},gn.set=function(t){var e,n;for(n in t)a(t,n)&&(T(e=t[n])?this[n]=e:this["_"+n]=e);this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},gn.eras=function(t,e){var n,i,o,a=this._eras||ue("en")._eras;for(n=0,i=a.length;n=0)return s[r]},gn.erasConvertYear=function(t,e){var n=t.since<=t.until?1:-1;return void 0===e?r(t.since).year():r(t.since).year()+(e-t.offset)*n},gn.erasAbbrRegex=function(t){return a(this,"_erasAbbrRegex")||an.call(this),t?this._erasAbbrRegex:this._erasRegex},gn.erasNameRegex=function(t){return a(this,"_erasNameRegex")||an.call(this),t?this._erasNameRegex:this._erasRegex},gn.erasNarrowRegex=function(t){return a(this,"_erasNarrowRegex")||an.call(this),t?this._erasNarrowRegex:this._erasRegex},gn.months=function(t,e){return t?i(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||St).test(e)?"format":"standalone"][t.month()]:i(this._months)?this._months:this._months.standalone},gn.monthsShort=function(t,e){return t?i(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[St.test(e)?"format":"standalone"][t.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},gn.monthsParse=function(t,e,n){var r,i,o;if(this._monthsParseExact)return Tt.call(this,t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(i=d([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(o="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[r]=new RegExp(o.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[r].test(t))return r;if(n&&"MMM"===e&&this._shortMonthsParse[r].test(t))return r;if(!n&&this._monthsParse[r].test(t))return r}},gn.monthsRegex=function(t){return this._monthsParseExact?(a(this,"_monthsRegex")||Ct.call(this),t?this._monthsStrictRegex:this._monthsRegex):(a(this,"_monthsRegex")||(this._monthsRegex=kt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},gn.monthsShortRegex=function(t){return this._monthsParseExact?(a(this,"_monthsRegex")||Ct.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(a(this,"_monthsShortRegex")||(this._monthsShortRegex=xt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},gn.week=function(t){return Lt(t,this._week.dow,this._week.doy).week},gn.firstDayOfYear=function(){return this._week.doy},gn.firstDayOfWeek=function(){return this._week.dow},gn.weekdays=function(t,e){var n=i(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Ut(n,this._week.dow):t?n[t.day()]:n},gn.weekdaysMin=function(t){return!0===t?Ut(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},gn.weekdaysShort=function(t){return!0===t?Ut(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},gn.weekdaysParse=function(t,e,n){var r,i,o;if(this._weekdaysParseExact)return Gt.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(i=d([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(o="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[r]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[r].test(t))return r;if(n&&"ddd"===e&&this._shortWeekdaysParse[r].test(t))return r;if(n&&"dd"===e&&this._minWeekdaysParse[r].test(t))return r;if(!n&&this._weekdaysParse[r].test(t))return r}},gn.weekdaysRegex=function(t){return this._weekdaysParseExact?(a(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(a(this,"_weekdaysRegex")||(this._weekdaysRegex=Ht),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},gn.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(a(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(a(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=qt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},gn.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(a(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(a(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Wt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},gn.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},gn.meridiem=function(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"},oe("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===G(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),r.lang=O("moment.lang is deprecated. Use moment.locale instead.",oe),r.langData=O("moment.langData is deprecated. Use moment.localeData instead.",ue);var En=Math.abs;function On(t,e,n,r){var i=Be(e,n);return t._milliseconds+=r*i._milliseconds,t._days+=r*i._days,t._months+=r*i._months,t._bubble()}function Sn(t){return t<0?Math.floor(t):Math.ceil(t)}function xn(t){return 4800*t/146097}function kn(t){return 146097*t/4800}function Tn(t){return function(){return this.as(t)}}var In=Tn("ms"),An=Tn("s"),Cn=Tn("m"),Pn=Tn("h"),Nn=Tn("d"),jn=Tn("w"),Rn=Tn("M"),Dn=Tn("Q"),Mn=Tn("y");function Ln(t){return function(){return this.isValid()?this._data[t]:NaN}}var Fn=Ln("milliseconds"),Un=Ln("seconds"),Vn=Ln("minutes"),Bn=Ln("hours"),zn=Ln("days"),Hn=Ln("months"),qn=Ln("years"),Wn=Math.round,Gn={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function Yn(t,e,n,r,i){return i.relativeTime(e||1,!!n,t,r)}var $n=Math.abs;function Kn(t){return(t>0)-(t<0)||+t}function Xn(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n,r,i,o,a,u,s=$n(this._milliseconds)/1e3,c=$n(this._days),l=$n(this._months),f=this.asSeconds();return f?(t=W(s/60),e=W(t/60),s%=60,t%=60,n=W(l/12),l%=12,r=s?s.toFixed(3).replace(/\.?0+$/,""):"",i=f<0?"-":"",o=Kn(this._months)!==Kn(f)?"-":"",a=Kn(this._days)!==Kn(f)?"-":"",u=Kn(this._milliseconds)!==Kn(f)?"-":"",i+"P"+(n?o+n+"Y":"")+(l?o+l+"M":"")+(c?a+c+"D":"")+(e||t||s?"T":"")+(e?u+e+"H":"")+(t?u+t+"M":"")+(s?u+r+"S":"")):"P0D"}var Qn=Ce.prototype;return Qn.isValid=function(){return this._isValid},Qn.abs=function(){var t=this._data;return this._milliseconds=En(this._milliseconds),this._days=En(this._days),this._months=En(this._months),t.milliseconds=En(t.milliseconds),t.seconds=En(t.seconds),t.minutes=En(t.minutes),t.hours=En(t.hours),t.months=En(t.months),t.years=En(t.years),this},Qn.add=function(t,e){return On(this,t,e,1)},Qn.subtract=function(t,e){return On(this,t,e,-1)},Qn.as=function(t){if(!this.isValid())return NaN;var e,n,r=this._milliseconds;if("month"===(t=V(t))||"quarter"===t||"year"===t)switch(e=this._days+r/864e5,n=this._months+xn(e),t){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(e=this._days+Math.round(kn(this._months)),t){case"week":return e/7+r/6048e5;case"day":return e+r/864e5;case"hour":return 24*e+r/36e5;case"minute":return 1440*e+r/6e4;case"second":return 86400*e+r/1e3;case"millisecond":return Math.floor(864e5*e)+r;default:throw new Error("Unknown unit "+t)}},Qn.asMilliseconds=In,Qn.asSeconds=An,Qn.asMinutes=Cn,Qn.asHours=Pn,Qn.asDays=Nn,Qn.asWeeks=jn,Qn.asMonths=Rn,Qn.asQuarters=Dn,Qn.asYears=Mn,Qn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*G(this._months/12):NaN},Qn._bubble=function(){var t,e,n,r,i,o=this._milliseconds,a=this._days,u=this._months,s=this._data;return o>=0&&a>=0&&u>=0||o<=0&&a<=0&&u<=0||(o+=864e5*Sn(kn(u)+a),a=0,u=0),s.milliseconds=o%1e3,t=W(o/1e3),s.seconds=t%60,e=W(t/60),s.minutes=e%60,n=W(e/60),s.hours=n%24,a+=W(n/24),i=W(xn(a)),u+=i,a-=Sn(kn(i)),r=W(u/12),u%=12,s.days=a,s.months=u,s.years=r,this},Qn.clone=function(){return Be(this)},Qn.get=function(t){return t=V(t),this.isValid()?this[t+"s"]():NaN},Qn.milliseconds=Fn,Qn.seconds=Un,Qn.minutes=Vn,Qn.hours=Bn,Qn.days=zn,Qn.weeks=function(){return W(this.days()/7)},Qn.months=Hn,Qn.years=qn,Qn.humanize=function(t,e){if(!this.isValid())return this.localeData().invalidDate();var n,r,i=!1,o=Gn;return"object"===typeof t&&(e=t,t=!1),"boolean"===typeof t&&(i=t),"object"===typeof e&&(o=Object.assign({},Gn,e),null!=e.s&&null==e.ss&&(o.ss=e.s-1)),n=this.localeData(),r=function(t,e,n,r){var i=Be(t).abs(),o=Wn(i.as("s")),a=Wn(i.as("m")),u=Wn(i.as("h")),s=Wn(i.as("d")),c=Wn(i.as("M")),l=Wn(i.as("w")),f=Wn(i.as("y")),h=o<=n.ss&&["s",o]||o0,h[4]=r,Yn.apply(null,h)}(this,!i,o,n),i&&(r=n.pastFuture(+this,r)),n.postformat(r)},Qn.toISOString=Xn,Qn.toString=Xn,Qn.toJSON=Xn,Qn.locale=Je,Qn.localeData=tn,Qn.toIsoString=O("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Xn),Qn.lang=Ze,D("X",0,0,"unix"),D("x",0,0,"valueOf"),dt("x",ct),dt("X",/[+-]?\d+(\.\d{1,3})?/),gt("X",(function(t,e,n){n._d=new Date(1e3*parseFloat(t))})),gt("x",(function(t,e,n){n._d=new Date(G(t))})),r.version="2.29.3",e=xe,r.fn=mn,r.min=function(){var t=[].slice.call(arguments,0);return Ie("isBefore",t)},r.max=function(){var t=[].slice.call(arguments,0);return Ie("isAfter",t)},r.now=function(){return Date.now?Date.now():+new Date},r.utc=d,r.unix=function(t){return xe(1e3*t)},r.months=function(t,e){return wn(t,e,"months")},r.isDate=l,r.locale=oe,r.invalid=m,r.duration=Be,r.isMoment=_,r.weekdays=function(t,e,n){return _n(t,e,n,"weekdays")},r.parseZone=function(){return xe.apply(null,arguments).parseZone()},r.localeData=ue,r.isDuration=Pe,r.monthsShort=function(t,e){return wn(t,e,"monthsShort")},r.weekdaysMin=function(t,e,n){return _n(t,e,n,"weekdaysMin")},r.defineLocale=ae,r.updateLocale=function(t,e){if(null!=e){var n,r,i=Zt;null!=te[t]&&null!=te[t].parentLocale?te[t].set(I(te[t]._config,e)):(null!=(r=ie(t))&&(i=r._config),e=I(i,e),null==r&&(e.abbr=t),(n=new A(e)).parentLocale=te[t],te[t]=n),oe(t)}else null!=te[t]&&(null!=te[t].parentLocale?(te[t]=te[t].parentLocale,t===oe()&&oe(t)):null!=te[t]&&delete te[t]);return te[t]},r.locales=function(){return S(te)},r.weekdaysShort=function(t,e,n){return _n(t,e,n,"weekdaysShort")},r.normalizeUnits=V,r.relativeTimeRounding=function(t){return void 0===t?Wn:"function"===typeof t&&(Wn=t,!0)},r.relativeTimeThreshold=function(t,e){return void 0!==Gn[t]&&(void 0===e?Gn[t]:(Gn[t]=e,"s"===t&&(Gn.ss=e-1),!0))},r.calendarFormat=function(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},r.prototype=mn,r.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},r}()}).call(this,n(90)(t))},function(t,e,n){"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=60&&Math.round(t.h)<=240?n?Math.round(t.h)-2*e:Math.round(t.h)+2*e:n?Math.round(t.h)+2*e:Math.round(t.h)-2*e)<0?r+=360:r>=360&&(r-=360),r}function l(t,e,n){return 0===t.h&&0===t.s?t.s:((r=n?t.s-.16*e:4===e?t.s+.16:t.s+.05*e)>1&&(r=1),n&&5===e&&r>.1&&(r=.1),r<.06&&(r=.06),Number(r.toFixed(2)));var r}function f(t,e,n){var r;return(r=n?t.v+.05*e:t.v-.15*e)>1&&(r=1),Number(r.toFixed(2))}function h(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=Object(i.a)(t),h=5;h>0;h-=1){var d=a(r),p=u(Object(i.a)({h:c(d,h,!0),s:l(d,h,!0),v:f(d,h,!0)}));n.push(p)}n.push(u(r));for(var v=1;v<=4;v+=1){var m=a(r),y=u(Object(i.a)({h:c(m,v),s:l(m,v),v:f(m,v)}));n.push(y)}return"dark"===e.theme?o.map((function(t){var r=t.index,o=t.opacity;return u(s(Object(i.a)(e.backgroundColor||"#141414"),Object(i.a)(n[r]),100*o))})):n}var d={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1890FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},p={},v={};Object.keys(d).forEach((function(t){p[t]=h(d[t]),p[t].primary=p[t][5],v[t]=h(d[t],{theme:"dark",backgroundColor:"#141414"}),v[t].primary=v[t][5]}));p.red,p.volcano,p.gold,p.orange,p.yellow,p.lime,p.green,p.cyan,p.blue,p.geekblue,p.purple,p.magenta,p.grey},function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var r={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}},function(t,e,n){"use strict";n.d(e,"a",(function(){return f})),n.d(e,"b",(function(){return m}));var r=n(0),i=n.n(r),o=i.a.createContext(null);var a=function(t){t()};function u(){var t=a,e=null,n=null;return{clear:function(){e=null,n=null},notify:function(){t((function(){for(var t=e;t;)t.callback(),t=t.next}))},get:function(){for(var t=[],n=e;n;)t.push(n),n=n.next;return t},subscribe:function(t){var r=!0,i=n={callback:t,next:null,prev:n};return i.prev?i.prev.next=i:e=i,function(){r&&null!==e&&(r=!1,i.next?i.next.prev=i.prev:n=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var s={notify:function(){},get:function(){return[]}};function c(t,e){var n,r=s;function i(){a.onStateChange&&a.onStateChange()}function o(){n||(n=e?e.addNestedSub(i):t.subscribe(i),r=u())}var a={addNestedSub:function(t){return o(),r.subscribe(t)},notifyNestedSubs:function(){r.notify()},handleChangeWrapper:i,isSubscribed:function(){return Boolean(n)},trySubscribe:o,tryUnsubscribe:function(){n&&(n(),n=void 0,r.clear(),r=s)},getListeners:function(){return r}};return a}var l="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement?r.useLayoutEffect:r.useEffect;var f=function(t){var e=t.store,n=t.context,a=t.children,u=Object(r.useMemo)((function(){var t=c(e);return{store:e,subscription:t}}),[e]),s=Object(r.useMemo)((function(){return e.getState()}),[e]);l((function(){var t=u.subscription;return t.onStateChange=t.notifyNestedSubs,t.trySubscribe(),s!==e.getState()&&t.notifyNestedSubs(),function(){t.tryUnsubscribe(),t.onStateChange=null}}),[u,s]);var f=n||o;return i.a.createElement(f.Provider,{value:u},a)};n(4),n(28),n(41),n(206);function h(){return Object(r.useContext)(o)}var d=function(t,e){return t===e};function p(t){void 0===t&&(t=o);var e=t===o?h:function(){return Object(r.useContext)(t)};return function(t,n){void 0===n&&(n=d);var i=e(),o=function(t,e,n,i){var o,a=Object(r.useReducer)((function(t){return t+1}),0)[1],u=Object(r.useMemo)((function(){return c(n,i)}),[n,i]),s=Object(r.useRef)(),f=Object(r.useRef)(),h=Object(r.useRef)(),d=Object(r.useRef)(),p=n.getState();try{if(t!==f.current||p!==h.current||s.current){var v=t(p);o=void 0!==d.current&&e(v,d.current)?d.current:v}else o=d.current}catch(m){throw s.current&&(m.message+="\nThe error may be correlated with this previous error:\n"+s.current.stack+"\n\n"),m}return l((function(){f.current=t,h.current=p,d.current=o,s.current=void 0})),l((function(){function t(){try{var t=n.getState();if(t===h.current)return;var r=f.current(t);if(e(r,d.current))return;d.current=r,h.current=t}catch(m){s.current=m}a()}return u.onStateChange=t,u.trySubscribe(),t(),function(){return u.tryUnsubscribe()}}),[n,u]),o}(t,n,i.store,i.subscription);return Object(r.useDebugValue)(o),o}}var v,m=p(),y=n(22);v=y.unstable_batchedUpdates,a=v},function(t,e,n){"use strict";var r=n(3),i=n(0),o={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z"}}]},name:"loading",theme:"outlined"},a=n(15),u=function(t,e){return i.createElement(a.a,Object(r.a)(Object(r.a)({},t),{},{ref:e,icon:o}))};u.displayName="LoadingOutlined";e.a=i.forwardRef(u)},function(t,e,n){t.exports=function(){"use strict";var t=Array.prototype.slice;function e(t,e){e&&(t.prototype=Object.create(e.prototype)),t.prototype.constructor=t}function n(t){return a(t)?t:z(t)}function r(t){return u(t)?t:H(t)}function i(t){return s(t)?t:q(t)}function o(t){return a(t)&&!c(t)?t:W(t)}function a(t){return!(!t||!t[f])}function u(t){return!(!t||!t[h])}function s(t){return!(!t||!t[d])}function c(t){return u(t)||s(t)}function l(t){return!(!t||!t[p])}e(r,n),e(i,n),e(o,n),n.isIterable=a,n.isKeyed=u,n.isIndexed=s,n.isAssociative=c,n.isOrdered=l,n.Keyed=r,n.Indexed=i,n.Set=o;var f="@@__IMMUTABLE_ITERABLE__@@",h="@@__IMMUTABLE_KEYED__@@",d="@@__IMMUTABLE_INDEXED__@@",p="@@__IMMUTABLE_ORDERED__@@",v={},m={value:!1},y={value:!1};function g(t){return t.value=!1,t}function b(t){t&&(t.value=!0)}function w(){}function _(t,e){e=e||0;for(var n=Math.max(0,t.length-e),r=new Array(n),i=0;i>>0;if(""+n!==e||4294967295===n)return NaN;e=n}return e<0?E(t)+e:e}function S(){return!0}function x(t,e,n){return(0===t||void 0!==n&&t<=-n)&&(void 0===e||void 0!==n&&e>=n)}function k(t,e){return I(t,e,0)}function T(t,e){return I(t,e,e)}function I(t,e,n){return void 0===t?n:t<0?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}var A,C,P,N="function"===typeof Symbol&&Symbol.iterator,j=N||"@@iterator";function R(t){this.next=t}function D(t,e,n,r){var i=0===t?e:1===t?n:[e,n];return r?r.value=i:r={value:i,done:!1},r}function M(){return{value:void 0,done:!0}}function L(t){return!!V(t)}function F(t){return t&&"function"===typeof t.next}function U(t){var e=V(t);return e&&e.call(t)}function V(t){var e=t&&(N&&t[N]||t["@@iterator"]);if("function"===typeof e)return e}function B(t){return t&&"number"===typeof t.length}function z(t){return null===t||void 0===t?Q():a(t)?t.toSeq():function(t){var e=tt(t)||"object"===typeof t&&new Y(t);if(!e)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+t);return e}(t)}function H(t){return null===t||void 0===t?Q().toKeyedSeq():a(t)?u(t)?t.toSeq():t.fromEntrySeq():J(t)}function q(t){return null===t||void 0===t?Q():a(t)?u(t)?t.entrySeq():t.toIndexedSeq():Z(t)}function W(t){return(null===t||void 0===t?Q():a(t)?u(t)?t.entrySeq():t:Z(t)).toSetSeq()}function G(t){this._array=t,this.size=t.length}function Y(t){var e=Object.keys(t);this._object=t,this._keys=e,this.size=e.length}function $(t){this._iterable=t,this.size=t.length||t.size}function K(t){this._iterator=t,this._iteratorCache=[]}function X(t){return!(!t||!t["@@__IMMUTABLE_SEQ__@@"])}function Q(){return A||(A=new G([]))}function J(t){var e=Array.isArray(t)?new G(t).fromEntrySeq():F(t)?new K(t).fromEntrySeq():L(t)?new $(t).fromEntrySeq():"object"===typeof t?new Y(t):void 0;if(!e)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+t);return e}function Z(t){var e=tt(t);if(!e)throw new TypeError("Expected Array or iterable object of values: "+t);return e}function tt(t){return B(t)?new G(t):F(t)?new K(t):L(t)?new $(t):void 0}function et(t,e,n,r){var i=t._cache;if(i){for(var o=i.length-1,a=0;a<=o;a++){var u=i[n?o-a:a];if(!1===e(u[1],r?u[0]:a,t))return a+1}return a}return t.__iterateUncached(e,n)}function nt(t,e,n,r){var i=t._cache;if(i){var o=i.length-1,a=0;return new R((function(){var t=i[n?o-a:a];return a++>o?{value:void 0,done:!0}:D(e,r?t[0]:a-1,t[1])}))}return t.__iteratorUncached(e,n)}function rt(t,e){return e?function t(e,n,r,i){return Array.isArray(n)?e.call(i,r,q(n).map((function(r,i){return t(e,r,i,n)}))):ot(n)?e.call(i,r,H(n).map((function(r,i){return t(e,r,i,n)}))):n}(e,t,"",{"":t}):it(t)}function it(t){return Array.isArray(t)?q(t).map(it).toList():ot(t)?H(t).map(it).toMap():t}function ot(t){return t&&(t.constructor===Object||void 0===t.constructor)}function at(t,e){if(t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1;if("function"===typeof t.valueOf&&"function"===typeof e.valueOf){if((t=t.valueOf())===(e=e.valueOf())||t!==t&&e!==e)return!0;if(!t||!e)return!1}return!("function"!==typeof t.equals||"function"!==typeof e.equals||!t.equals(e))}function ut(t,e){if(t===e)return!0;if(!a(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||u(t)!==u(e)||s(t)!==s(e)||l(t)!==l(e))return!1;if(0===t.size&&0===e.size)return!0;var n=!c(t);if(l(t)){var r=t.entries();return e.every((function(t,e){var i=r.next().value;return i&&at(i[1],t)&&(n||at(i[0],e))}))&&r.next().done}var i=!1;if(void 0===t.size)if(void 0===e.size)"function"===typeof t.cacheResult&&t.cacheResult();else{i=!0;var o=t;t=e,e=o}var f=!0,h=e.__iterate((function(e,r){if(n?!t.has(e):i?!at(e,t.get(r,v)):!at(t.get(r,v),e))return f=!1,!1}));return f&&t.size===h}function st(t,e){if(!(this instanceof st))return new st(t,e);if(this._value=t,this.size=void 0===e?1/0:Math.max(0,e),0===this.size){if(C)return C;C=this}}function ct(t,e){if(!t)throw new Error(e)}function lt(t,e,n){if(!(this instanceof lt))return new lt(t,e,n);if(ct(0!==n,"Cannot step a Range by 0"),t=t||0,void 0===e&&(e=1/0),n=void 0===n?1:Math.abs(n),er?{value:void 0,done:!0}:D(t,i,n[e?r-i++:i++])}))},e(Y,H),Y.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},Y.prototype.has=function(t){return this._object.hasOwnProperty(t)},Y.prototype.__iterate=function(t,e){for(var n=this._object,r=this._keys,i=r.length-1,o=0;o<=i;o++){var a=r[e?i-o:o];if(!1===t(n[a],a,this))return o+1}return o},Y.prototype.__iterator=function(t,e){var n=this._object,r=this._keys,i=r.length-1,o=0;return new R((function(){var a=r[e?i-o:o];return o++>i?{value:void 0,done:!0}:D(t,a,n[a])}))},Y.prototype[p]=!0,e($,q),$.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);var n=U(this._iterable),r=0;if(F(n))for(var i;!(i=n.next()).done&&!1!==t(i.value,r++,this););return r},$.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var n=U(this._iterable);if(!F(n))return new R(M);var r=0;return new R((function(){var e=n.next();return e.done?e:D(t,r++,e.value)}))},e(K,q),K.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);for(var n,r=this._iterator,i=this._iteratorCache,o=0;o=r.length){var e=n.next();if(e.done)return e;r[i]=e.value}return D(t,i,r[i++])}))},e(st,q),st.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},st.prototype.get=function(t,e){return this.has(t)?this._value:e},st.prototype.includes=function(t){return at(this._value,t)},st.prototype.slice=function(t,e){var n=this.size;return x(t,e,n)?this:new st(this._value,T(e,n)-k(t,n))},st.prototype.reverse=function(){return this},st.prototype.indexOf=function(t){return at(this._value,t)?0:-1},st.prototype.lastIndexOf=function(t){return at(this._value,t)?this.size:-1},st.prototype.__iterate=function(t,e){for(var n=0;n1?" by "+this._step:"")+" ]"},lt.prototype.get=function(t,e){return this.has(t)?this._start+O(this,t)*this._step:e},lt.prototype.includes=function(t){var e=(t-this._start)/this._step;return e>=0&&e=0&&nn?{value:void 0,done:!0}:D(t,o++,a)}))},lt.prototype.equals=function(t){return t instanceof lt?this._start===t._start&&this._end===t._end&&this._step===t._step:ut(this,t)},e(ft,n),e(ht,ft),e(dt,ft),e(pt,ft),ft.Keyed=ht,ft.Indexed=dt,ft.Set=pt;var vt="function"===typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,e){var n=65535&(t|=0),r=65535&(e|=0);return n*r+((t>>>16)*r+n*(e>>>16)<<16>>>0)|0};function mt(t){return t>>>1&1073741824|3221225471&t}function yt(t){if(!1===t||null===t||void 0===t)return 0;if("function"===typeof t.valueOf&&(!1===(t=t.valueOf())||null===t||void 0===t))return 0;if(!0===t)return 1;var e=typeof t;if("number"===e){var n=0|t;for(n!==t&&(n^=4294967295*t);t>4294967295;)n^=t/=4294967295;return mt(n)}if("string"===e)return t.length>xt?function(t){var e=It[t];return void 0===e&&(e=gt(t),Tt===kt&&(Tt=0,It={}),Tt++,It[t]=e),e}(t):gt(t);if("function"===typeof t.hashCode)return t.hashCode();if("object"===e)return function(t){var e;if(Et&&void 0!==(e=bt.get(t)))return e;if(void 0!==(e=t[St]))return e;if(!_t){if(void 0!==(e=t.propertyIsEnumerable&&t.propertyIsEnumerable[St]))return e;if(void 0!==(e=function(t){if(t&&t.nodeType>0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}(t)))return e}if(e=++Ot,1073741824&Ot&&(Ot=0),Et)bt.set(t,e);else{if(void 0!==wt&&!1===wt(t))throw new Error("Non-extensible objects are not allowed as keys.");if(_t)Object.defineProperty(t,St,{enumerable:!1,configurable:!1,writable:!1,value:e});else if(void 0!==t.propertyIsEnumerable&&t.propertyIsEnumerable===t.constructor.prototype.propertyIsEnumerable)t.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},t.propertyIsEnumerable[St]=e;else{if(void 0===t.nodeType)throw new Error("Unable to set a non-enumerable property on object.");t[St]=e}}return e}(t);if("function"===typeof t.toString)return gt(t.toString());throw new Error("Value type "+e+" cannot be hashed.")}function gt(t){for(var e=0,n=0;n>>n),u=31&(0===n?r:r>>>n);return new Mt(e,1<>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135,t+=t>>8,127&(t+=t>>16)}function te(t,e,n,r){var i=r?t:_(t);return i[e]=n,i}Rt[jt]=!0,Rt.delete=Rt.remove,Rt.removeIn=Rt.deleteIn,Dt.prototype.get=function(t,e,n,r){for(var i=this.entries,o=0,a=i.length;o=ee)return function(t,e,n,r){t||(t=new w);for(var i=new Ut(t,yt(n),[n,r]),o=0;o>>t)),o=this.bitmap;return 0===(o&i)?r:this.nodes[Zt(o&i-1)].get(t+5,e,n,r)},Mt.prototype.update=function(t,e,n,r,i,o,a){void 0===n&&(n=yt(r));var u=31&(0===e?n:n>>>e),s=1<=ne)return function(t,e,n,r,i){for(var o=0,a=new Array(32),u=0;0!==n;u++,n>>>=1)a[u]=1&n?e[o++]:void 0;return a[r]=i,new Lt(t,o+1,a)}(t,h,c,u,p);if(l&&!p&&2===h.length&&Yt(h[1^f]))return h[1^f];if(l&&p&&1===h.length&&Yt(p))return p;var m=t&&t===this.ownerID,y=l?p?c:c^s:c|s,g=l?p?te(h,f,p,m):function(t,e,n){var r=t.length-1;if(n&&e===r)return t.pop(),t;for(var i=new Array(r),o=0,a=0;a>>t),o=this.nodes[i];return o?o.get(t+5,e,n,r):r},Lt.prototype.update=function(t,e,n,r,i,o,a){void 0===n&&(n=yt(r));var u=31&(0===e?n:n>>>e),s=i===v,c=this.nodes,l=c[u];if(s&&!l)return this;var f=Gt(l,t,e+5,n,r,i,o,a);if(f===l)return this;var h=this.count;if(l){if(!f&&--h0&&r<32?de(0,r,5,null,new se(n.toArray())):e.withMutations((function(t){t.setSize(r),n.forEach((function(e,n){return t.set(n,e)}))})))}function oe(t){return!(!t||!t[ae])}e(ie,dt),ie.of=function(){return this(arguments)},ie.prototype.toString=function(){return this.__toString("List [","]")},ie.prototype.get=function(t,e){if((t=O(this,t))>=0&&t=t.size||e<0)return t.withMutations((function(t){e<0?ge(t,e).set(0,n):ge(t,0,e+1).set(e,n)}));e+=t._origin;var r=t._tail,i=t._root,o=g(y);return e>=we(t._capacity)?r=ve(r,t.__ownerID,0,e,n,o):i=ve(i,t.__ownerID,t._level,e,n,o),o.value?t.__ownerID?(t._root=i,t._tail=r,t.__hash=void 0,t.__altered=!0,t):de(t._origin,t._capacity,t._level,i,r):t}(this,t,e)},ie.prototype.remove=function(t){return this.has(t)?0===t?this.shift():t===this.size-1?this.pop():this.splice(t,1):this},ie.prototype.insert=function(t,e){return this.splice(t,0,e)},ie.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=5,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):pe()},ie.prototype.push=function(){var t=arguments,e=this.size;return this.withMutations((function(n){ge(n,0,e+t.length);for(var r=0;r>>e&31;if(r>=this.array.length)return new se([],t);var i,o=0===r;if(e>0){var a=this.array[r];if((i=a&&a.removeBefore(t,e-5,n))===a&&o)return this}if(o&&!i)return this;var u=me(this,t);if(!o)for(var s=0;s>>e&31;if(i>=this.array.length)return this;if(e>0){var o=this.array[i];if((r=o&&o.removeAfter(t,e-5,n))===o&&i===this.array.length-1)return this}var a=me(this,t);return a.array.splice(i+1),r&&(a.array[i]=r),a};var ce,le,fe={};function he(t,e){var n=t._origin,r=t._capacity,i=we(r),o=t._tail;return a(t._root,t._level,0);function a(t,u,s){return 0===u?function(t,a){var u=a===i?o&&o.array:t&&t.array,s=a>n?0:n-a,c=r-a;return c>32&&(c=32),function(){if(s===c)return fe;var t=e?--c:s++;return u&&u[t]}}(t,s):function(t,i,o){var u,s=t&&t.array,c=o>n?0:n-o>>i,l=1+(r-o>>i);return l>32&&(l=32),function(){for(;;){if(u){var t=u();if(t!==fe)return t;u=null}if(c===l)return fe;var n=e?--l:c++;u=a(s&&s[n],i-5,o+(n<>>n&31,s=t&&u0){var c=t&&t.array[u],l=ve(c,e,n-5,r,i,o);return l===c?t:((a=me(t,e)).array[u]=l,a)}return s&&t.array[u]===i?t:(b(o),a=me(t,e),void 0===i&&u===a.array.length-1?a.array.pop():a.array[u]=i,a)}function me(t,e){return e&&t&&e===t.ownerID?t:new se(t?t.array.slice():[],e)}function ye(t,e){if(e>=we(t._capacity))return t._tail;if(e<1<0;)n=n.array[e>>>r&31],r-=5;return n}}function ge(t,e,n){void 0!==e&&(e|=0),void 0!==n&&(n|=0);var r=t.__ownerID||new w,i=t._origin,o=t._capacity,a=i+e,u=void 0===n?o:n<0?o+n:i+n;if(a===i&&u===o)return t;if(a>=u)return t.clear();for(var s=t._level,c=t._root,l=0;a+l<0;)c=new se(c&&c.array.length?[void 0,c]:[],r),l+=1<<(s+=5);l&&(a+=l,i+=l,u+=l,o+=l);for(var f=we(o),h=we(u);h>=1<f?new se([],r):d;if(d&&h>f&&a5;m-=5){var y=f>>>m&31;v=v.array[y]=me(v.array[y],r)}v.array[f>>>5&31]=d}if(u=h)a-=h,u-=h,s=5,c=null,p=p&&p.removeBefore(r,0,a);else if(a>i||h>>s&31;if(g!==h>>>s&31)break;g&&(l+=(1<i&&(c=c.removeBefore(r,s,a-l)),c&&ho&&(o=c.size),a(s)||(c=c.map((function(t){return rt(t)}))),r.push(c)}return o>t.size&&(t=t.setSize(o)),Jt(t,e,r)}function we(t){return t<32?0:t-1>>>5<<5}function _e(t){return null===t||void 0===t?Se():Ee(t)?t:Se().withMutations((function(e){var n=r(t);At(n.size),n.forEach((function(t,n){return e.set(n,t)}))}))}function Ee(t){return Pt(t)&&l(t)}function Oe(t,e,n,r){var i=Object.create(_e.prototype);return i.size=t?t.size:0,i._map=t,i._list=e,i.__ownerID=n,i.__hash=r,i}function Se(){return le||(le=Oe(qt(),pe()))}function xe(t,e,n){var r,i,o=t._map,a=t._list,u=o.get(e),s=void 0!==u;if(n===v){if(!s)return t;a.size>=32&&a.size>=2*o.size?(r=(i=a.filter((function(t,e){return void 0!==t&&u!==e}))).toKeyedSeq().map((function(t){return t[0]})).flip().toMap(),t.__ownerID&&(r.__ownerID=i.__ownerID=t.__ownerID)):(r=o.remove(e),i=u===a.size-1?a.pop():a.set(u,void 0))}else if(s){if(n===a.get(u)[1])return t;r=o,i=a.set(u,[e,n])}else r=o.set(e,a.size),i=a.set(a.size,[e,n]);return t.__ownerID?(t.size=r.size,t._map=r,t._list=i,t.__hash=void 0,t):Oe(r,i)}function ke(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function Te(t){this._iter=t,this.size=t.size}function Ie(t){this._iter=t,this.size=t.size}function Ae(t){this._iter=t,this.size=t.size}function Ce(t){var e=Ge(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this);return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.includes(e)},e.includes=function(e){return t.has(e)},e.cacheResult=Ye,e.__iterateUncached=function(e,n){var r=this;return t.__iterate((function(t,n){return!1!==e(n,t,r)}),n)},e.__iteratorUncached=function(e,n){if(2===e){var r=t.__iterator(e,n);return new R((function(){var t=r.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t}))}return t.__iterator(1===e?0:1,n)},e}function Pe(t,e,n){var r=Ge(t);return r.size=t.size,r.has=function(e){return t.has(e)},r.get=function(r,i){var o=t.get(r,v);return o===v?i:e.call(n,o,r,t)},r.__iterateUncached=function(r,i){var o=this;return t.__iterate((function(t,i,a){return!1!==r(e.call(n,t,i,a),i,o)}),i)},r.__iteratorUncached=function(r,i){var o=t.__iterator(2,i);return new R((function(){var i=o.next();if(i.done)return i;var a=i.value,u=a[0];return D(r,u,e.call(n,a[1],u,t),i)}))},r}function Ne(t,e){var n=Ge(t);return n._iter=t,n.size=t.size,n.reverse=function(){return t},t.flip&&(n.flip=function(){var e=Ce(t);return e.reverse=function(){return t.flip()},e}),n.get=function(n,r){return t.get(e?n:-1-n,r)},n.has=function(n){return t.has(e?n:-1-n)},n.includes=function(e){return t.includes(e)},n.cacheResult=Ye,n.__iterate=function(e,n){var r=this;return t.__iterate((function(t,n){return e(t,n,r)}),!n)},n.__iterator=function(e,n){return t.__iterator(e,!n)},n}function je(t,e,n,r){var i=Ge(t);return r&&(i.has=function(r){var i=t.get(r,v);return i!==v&&!!e.call(n,i,r,t)},i.get=function(r,i){var o=t.get(r,v);return o!==v&&e.call(n,o,r,t)?o:i}),i.__iterateUncached=function(i,o){var a=this,u=0;return t.__iterate((function(t,o,s){if(e.call(n,t,o,s))return u++,i(t,r?o:u-1,a)}),o),u},i.__iteratorUncached=function(i,o){var a=t.__iterator(2,o),u=0;return new R((function(){for(;;){var o=a.next();if(o.done)return o;var s=o.value,c=s[0],l=s[1];if(e.call(n,l,c,t))return D(i,r?c:u++,l,o)}}))},i}function Re(t,e,n,r){var i=t.size;if(void 0!==e&&(e|=0),void 0!==n&&(n|=0),x(e,n,i))return t;var o=k(e,i),a=T(n,i);if(o!==o||a!==a)return Re(t.toSeq().cacheResult(),e,n,r);var u,s=a-o;s===s&&(u=s<0?0:s);var c=Ge(t);return c.size=0===u?u:t.size&&u||void 0,!r&&X(t)&&u>=0&&(c.get=function(e,n){return(e=O(this,e))>=0&&eu)return{value:void 0,done:!0};var t=i.next();return r||1===e?t:D(e,s-1,0===e?void 0:t.value[1],t)}))},c}function De(t,e,n,r){var i=Ge(t);return i.__iterateUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterate(i,o);var u=!0,s=0;return t.__iterate((function(t,o,c){if(!u||!(u=e.call(n,t,o,c)))return s++,i(t,r?o:s-1,a)})),s},i.__iteratorUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterator(i,o);var u=t.__iterator(2,o),s=!0,c=0;return new R((function(){var t,o,l;do{if((t=u.next()).done)return r||1===i?t:D(i,c++,0===i?void 0:t.value[1],t);var f=t.value;o=f[0],l=f[1],s&&(s=e.call(n,l,o,a))}while(s);return 2===i?t:D(i,o,l,t)}))},i}function Me(t,e){var n=u(t),i=[t].concat(e).map((function(t){return a(t)?n&&(t=r(t)):t=n?J(t):Z(Array.isArray(t)?t:[t]),t})).filter((function(t){return 0!==t.size}));if(0===i.length)return t;if(1===i.length){var o=i[0];if(o===t||n&&u(o)||s(t)&&s(o))return o}var c=new G(i);return n?c=c.toKeyedSeq():s(t)||(c=c.toSetSeq()),(c=c.flatten(!0)).size=i.reduce((function(t,e){if(void 0!==t){var n=e.size;if(void 0!==n)return t+n}}),0),c}function Le(t,e,n){var r=Ge(t);return r.__iterateUncached=function(r,i){var o=0,u=!1;return function t(s,c){var l=this;s.__iterate((function(i,s){return(!e||c0}function Be(t,e,r){var i=Ge(t);return i.size=new G(r).map((function(t){return t.size})).min(),i.__iterate=function(t,e){for(var n,r=this.__iterator(1,e),i=0;!(n=r.next()).done&&!1!==t(n.value,i++,this););return i},i.__iteratorUncached=function(t,i){var o=r.map((function(t){return t=n(t),U(i?t.reverse():t)})),a=0,u=!1;return new R((function(){var n;return u||(n=o.map((function(t){return t.next()})),u=n.some((function(t){return t.done}))),u?{value:void 0,done:!0}:D(t,a++,e.apply(null,n.map((function(t){return t.value}))))}))},i}function ze(t,e){return X(t)?e:t.constructor(e)}function He(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function qe(t){return At(t.size),E(t)}function We(t){return u(t)?r:s(t)?i:o}function Ge(t){return Object.create((u(t)?H:s(t)?q:W).prototype)}function Ye(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):z.prototype.cacheResult.call(this)}function $e(t,e){return t>e?1:t=0;n--)e={value:arguments[n],next:e};return this.__ownerID?(this.size=t,this._head=e,this.__hash=void 0,this.__altered=!0,this):_n(t,e)},mn.prototype.pushAll=function(t){if(0===(t=i(t)).size)return this;At(t.size);var e=this.size,n=this._head;return t.reverse().forEach((function(t){e++,n={value:t,next:n}})),this.__ownerID?(this.size=e,this._head=n,this.__hash=void 0,this.__altered=!0,this):_n(e,n)},mn.prototype.pop=function(){return this.slice(1)},mn.prototype.unshift=function(){return this.push.apply(this,arguments)},mn.prototype.unshiftAll=function(t){return this.pushAll(t)},mn.prototype.shift=function(){return this.pop.apply(this,arguments)},mn.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):En()},mn.prototype.slice=function(t,e){if(x(t,e,this.size))return this;var n=k(t,this.size);if(T(e,this.size)!==this.size)return dt.prototype.slice.call(this,t,e);for(var r=this.size-n,i=this._head;n--;)i=i.next;return this.__ownerID?(this.size=r,this._head=i,this.__hash=void 0,this.__altered=!0,this):_n(r,i)},mn.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?_n(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},mn.prototype.__iterate=function(t,e){if(e)return this.reverse().__iterate(t);for(var n=0,r=this._head;r&&!1!==t(r.value,n++,this);)r=r.next;return n},mn.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var n=0,r=this._head;return new R((function(){if(r){var e=r.value;return r=r.next,D(t,n++,e)}return{value:void 0,done:!0}}))},mn.isStack=yn;var gn,bn="@@__IMMUTABLE_STACK__@@",wn=mn.prototype;function _n(t,e,n,r){var i=Object.create(wn);return i.size=t,i._head=e,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function En(){return gn||(gn=_n(0))}function On(t,e){var n=function(n){t.prototype[n]=e[n]};return Object.keys(e).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach(n),t}wn[bn]=!0,wn.withMutations=Rt.withMutations,wn.asMutable=Rt.asMutable,wn.asImmutable=Rt.asImmutable,wn.wasAltered=Rt.wasAltered,n.Iterator=R,On(n,{toArray:function(){At(this.size);var t=new Array(this.size||0);return this.valueSeq().__iterate((function(e,n){t[n]=e})),t},toIndexedSeq:function(){return new Te(this)},toJS:function(){return this.toSeq().map((function(t){return t&&"function"===typeof t.toJS?t.toJS():t})).__toJS()},toJSON:function(){return this.toSeq().map((function(t){return t&&"function"===typeof t.toJSON?t.toJSON():t})).__toJS()},toKeyedSeq:function(){return new ke(this,!0)},toMap:function(){return Ct(this.toKeyedSeq())},toObject:function(){At(this.size);var t={};return this.__iterate((function(e,n){t[n]=e})),t},toOrderedMap:function(){return _e(this.toKeyedSeq())},toOrderedSet:function(){return ln(u(this)?this.valueSeq():this)},toSet:function(){return en(u(this)?this.valueSeq():this)},toSetSeq:function(){return new Ie(this)},toSeq:function(){return s(this)?this.toIndexedSeq():u(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return mn(u(this)?this.valueSeq():this)},toList:function(){return ie(u(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(t,e){return 0===this.size?t+e:t+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+e},concat:function(){var e=t.call(arguments,0);return ze(this,Me(this,e))},includes:function(t){return this.some((function(e){return at(e,t)}))},entries:function(){return this.__iterator(2)},every:function(t,e){At(this.size);var n=!0;return this.__iterate((function(r,i,o){if(!t.call(e,r,i,o))return n=!1,!1})),n},filter:function(t,e){return ze(this,je(this,t,e,!0))},find:function(t,e,n){var r=this.findEntry(t,e);return r?r[1]:n},findEntry:function(t,e){var n;return this.__iterate((function(r,i,o){if(t.call(e,r,i,o))return n=[i,r],!1})),n},findLastEntry:function(t,e){return this.toSeq().reverse().findEntry(t,e)},forEach:function(t,e){return At(this.size),this.__iterate(e?t.bind(e):t)},join:function(t){At(this.size),t=void 0!==t?""+t:",";var e="",n=!0;return this.__iterate((function(r){n?n=!1:e+=t,e+=null!==r&&void 0!==r?r.toString():""})),e},keys:function(){return this.__iterator(0)},map:function(t,e){return ze(this,Pe(this,t,e))},reduce:function(t,e,n){var r,i;return At(this.size),arguments.length<2?i=!0:r=e,this.__iterate((function(e,o,a){i?(i=!1,r=e):r=t.call(n,r,e,o,a)})),r},reduceRight:function(t,e,n){var r=this.toKeyedSeq().reverse();return r.reduce.apply(r,arguments)},reverse:function(){return ze(this,Ne(this,!0))},slice:function(t,e){return ze(this,Re(this,t,e,!0))},some:function(t,e){return!this.every(In(t),e)},sort:function(t){return ze(this,Fe(this,t))},values:function(){return this.__iterator(1)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some((function(){return!0}))},count:function(t,e){return E(t?this.toSeq().filter(t,e):this)},countBy:function(t,e){return function(t,e,n){var r=Ct().asMutable();return t.__iterate((function(i,o){r.update(e.call(n,i,o,t),0,(function(t){return t+1}))})),r.asImmutable()}(this,t,e)},equals:function(t){return ut(this,t)},entrySeq:function(){var t=this;if(t._cache)return new G(t._cache);var e=t.toSeq().map(Tn).toIndexedSeq();return e.fromEntrySeq=function(){return t.toSeq()},e},filterNot:function(t,e){return this.filter(In(t),e)},findLast:function(t,e,n){return this.toKeyedSeq().reverse().find(t,e,n)},first:function(){return this.find(S)},flatMap:function(t,e){return ze(this,function(t,e,n){var r=We(t);return t.toSeq().map((function(i,o){return r(e.call(n,i,o,t))})).flatten(!0)}(this,t,e))},flatten:function(t){return ze(this,Le(this,t,!0))},fromEntrySeq:function(){return new Ae(this)},get:function(t,e){return this.find((function(e,n){return at(n,t)}),void 0,e)},getIn:function(t,e){for(var n,r=this,i=Ke(t);!(n=i.next()).done;){var o=n.value;if((r=r&&r.get?r.get(o,v):v)===v)return e}return r},groupBy:function(t,e){return function(t,e,n){var r=u(t),i=(l(t)?_e():Ct()).asMutable();t.__iterate((function(o,a){i.update(e.call(n,o,a,t),(function(t){return(t=t||[]).push(r?[a,o]:o),t}))}));var o=We(t);return i.map((function(e){return ze(t,o(e))}))}(this,t,e)},has:function(t){return this.get(t,v)!==v},hasIn:function(t){return this.getIn(t,v)!==v},isSubset:function(t){return t="function"===typeof t.includes?t:n(t),this.every((function(e){return t.includes(e)}))},isSuperset:function(t){return(t="function"===typeof t.isSubset?t:n(t)).isSubset(this)},keySeq:function(){return this.toSeq().map(kn).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},max:function(t){return Ue(this,t)},maxBy:function(t,e){return Ue(this,e,t)},min:function(t){return Ue(this,t?An(t):Nn)},minBy:function(t,e){return Ue(this,e?An(e):Nn,t)},rest:function(){return this.slice(1)},skip:function(t){return this.slice(Math.max(0,t))},skipLast:function(t){return ze(this,this.toSeq().reverse().skip(t).reverse())},skipWhile:function(t,e){return ze(this,De(this,t,e,!0))},skipUntil:function(t,e){return this.skipWhile(In(t),e)},sortBy:function(t,e){return ze(this,Fe(this,e,t))},take:function(t){return this.slice(0,Math.max(0,t))},takeLast:function(t){return ze(this,this.toSeq().reverse().take(t).reverse())},takeWhile:function(t,e){return ze(this,function(t,e,n){var r=Ge(t);return r.__iterateUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterate(r,i);var a=0;return t.__iterate((function(t,i,u){return e.call(n,t,i,u)&&++a&&r(t,i,o)})),a},r.__iteratorUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterator(r,i);var a=t.__iterator(2,i),u=!0;return new R((function(){if(!u)return{value:void 0,done:!0};var t=a.next();if(t.done)return t;var i=t.value,s=i[0],c=i[1];return e.call(n,c,s,o)?2===r?t:D(r,s,c,t):(u=!1,{value:void 0,done:!0})}))},r}(this,t,e))},takeUntil:function(t,e){return this.takeWhile(In(t),e)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=function(t){if(t.size===1/0)return 0;var e=l(t),n=u(t),r=e?1:0;return function(t,e){return e=vt(e,3432918353),e=vt(e<<15|e>>>-15,461845907),e=vt(e<<13|e>>>-13,5),e=vt((e=(e+3864292196|0)^t)^e>>>16,2246822507),e=mt((e=vt(e^e>>>13,3266489909))^e>>>16)}(t.__iterate(n?e?function(t,e){r=31*r+jn(yt(t),yt(e))|0}:function(t,e){r=r+jn(yt(t),yt(e))|0}:e?function(t){r=31*r+yt(t)|0}:function(t){r=r+yt(t)|0}),r)}(this))}});var Sn=n.prototype;Sn[f]=!0,Sn[j]=Sn.values,Sn.__toJS=Sn.toArray,Sn.__toStringMapper=Cn,Sn.inspect=Sn.toSource=function(){return this.toString()},Sn.chain=Sn.flatMap,Sn.contains=Sn.includes,function(){try{Object.defineProperty(Sn,"length",{get:function(){if(!n.noLengthWarning){var t;try{throw new Error}catch(e){t=e.stack}if(-1===t.indexOf("_wrapObject"))return console&&console.warn&&console.warn("iterable.length has been deprecated, use iterable.size or iterable.count(). This warning will become a silent error in a future version. "+t),this.size}}})}catch(t){}}(),On(r,{flip:function(){return ze(this,Ce(this))},findKey:function(t,e){var n=this.findEntry(t,e);return n&&n[0]},findLastKey:function(t,e){return this.toSeq().reverse().findKey(t,e)},keyOf:function(t){return this.findKey((function(e){return at(e,t)}))},lastKeyOf:function(t){return this.findLastKey((function(e){return at(e,t)}))},mapEntries:function(t,e){var n=this,r=0;return ze(this,this.toSeq().map((function(i,o){return t.call(e,[o,i],r++,n)})).fromEntrySeq())},mapKeys:function(t,e){var n=this;return ze(this,this.toSeq().flip().map((function(r,i){return t.call(e,r,i,n)})).flip())}});var xn=r.prototype;function kn(t,e){return e}function Tn(t,e){return[e,t]}function In(t){return function(){return!t.apply(this,arguments)}}function An(t){return function(){return-t.apply(this,arguments)}}function Cn(t){return"string"===typeof t?JSON.stringify(t):t}function Pn(){return _(arguments)}function Nn(t,e){return te?-1:0}function jn(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}return xn[h]=!0,xn[j]=Sn.entries,xn.__toJS=Sn.toObject,xn.__toStringMapper=function(t,e){return JSON.stringify(e)+": "+Cn(t)},On(i,{toKeyedSeq:function(){return new ke(this,!1)},filter:function(t,e){return ze(this,je(this,t,e,!1))},findIndex:function(t,e){var n=this.findEntry(t,e);return n?n[0]:-1},indexOf:function(t){var e=this.toKeyedSeq().keyOf(t);return void 0===e?-1:e},lastIndexOf:function(t){var e=this.toKeyedSeq().reverse().keyOf(t);return void 0===e?-1:e},reverse:function(){return ze(this,Ne(this,!1))},slice:function(t,e){return ze(this,Re(this,t,e,!1))},splice:function(t,e){var n=arguments.length;if(e=Math.max(0|e,0),0===n||2===n&&!e)return this;t=k(t,t<0?this.count():this.size);var r=this.slice(0,t);return ze(this,1===n?r:r.concat(_(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var n=this.toKeyedSeq().findLastKey(t,e);return void 0===n?-1:n},first:function(){return this.get(0)},flatten:function(t){return ze(this,Le(this,t,!1))},get:function(t,e){return(t=O(this,t))<0||this.size===1/0||void 0!==this.size&&t>this.size?e:this.find((function(e,n){return n===t}),void 0,e)},has:function(t){return(t=O(this,t))>=0&&(void 0!==this.size?this.size===1/0||t0;if(C||P){var e=Object(v.a)(d(F)).length,n="object"===Object(o.a)(P)?P.formatter({count:e,maxLength:A}):"".concat(e).concat(t?" / ".concat(A):"");return u.a.createElement(u.a.Fragment,null,!!P&&u.a.createElement("span",{className:c()("".concat(x,"-show-count-suffix"),Object(i.a)({},"".concat(x,"-show-count-has-suffix"),!!C))},n),C)}return null}(),disabled:k}))})),E=n(75),O=n(60),S=n(40),x=n(37);Object(x.a)("warning","error","");function k(t,e,n){var r;return c()((r={},Object(i.a)(r,"".concat(t,"-status-success"),"success"===e),Object(i.a)(r,"".concat(t,"-status-warning"),"warning"===e),Object(i.a)(r,"".concat(t,"-status-error"),"error"===e),Object(i.a)(r,"".concat(t,"-status-validating"),"validating"===e),Object(i.a)(r,"".concat(t,"-has-feedback"),n),r))}var T=function(t,e){return e||t},I=n(74),A=n(54),C=(n(123),a.createContext({})),P=function(t){var e=t.children,n=Object(a.useMemo)((function(){return{}}),[]);return a.createElement(C.Provider,{value:n},e)};var N=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"===typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(t);i1&&void 0!==arguments[1]?arguments[1]:{},r=[];return u.a.Children.forEach(e,(function(e){(void 0!==e&&null!==e||n.keepEmpty)&&(Array.isArray(e)?r=r.concat(t(e)):Object(K.isFragment)(e)&&e.props?r=r.concat(t(e.props.children,n)):r.push(e))})),r}(e)).map((function(e,n){var i=(null===e||void 0===e?void 0:e.key)||"".concat("rc-observer-key","-").concat(n);return a.createElement(at,Object(r.a)({},t,{key:i}),e)}))}ut.Collection=function(t){var e=t.children,n=t.onBatchResize,r=a.useRef(0),i=a.useRef([]),o=a.useContext(ot),u=a.useCallback((function(t,e,a){r.current+=1;var u=r.current;i.current.push({size:t,element:e,data:a}),Promise.resolve().then((function(){u===r.current&&(null===n||void 0===n||n(i.current),i.current=[])})),null===o||void 0===o||o(t,e,a)}),[n,o]);return a.createElement(ot.Provider,{value:u},e)};var st=ut;var ct,lt="\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n",ft=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break"],ht={};function dt(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.getAttribute("id")||t.getAttribute("data-reactid")||t.getAttribute("name");if(e&&ht[n])return ht[n];var r=window.getComputedStyle(t),i=r.getPropertyValue("box-sizing")||r.getPropertyValue("-moz-box-sizing")||r.getPropertyValue("-webkit-box-sizing"),o=parseFloat(r.getPropertyValue("padding-bottom"))+parseFloat(r.getPropertyValue("padding-top")),a=parseFloat(r.getPropertyValue("border-bottom-width"))+parseFloat(r.getPropertyValue("border-top-width")),u=ft.map((function(t){return"".concat(t,":").concat(r.getPropertyValue(t))})).join(";"),s={sizingStyle:u,paddingSize:o,borderSize:a,boxSizing:i};return e&&n&&(ht[n]=s),s}var pt,vt=n(109),mt=n.n(vt);!function(t){t[t.NONE=0]="NONE",t[t.RESIZING=1]="RESIZING",t[t.RESIZED=2]="RESIZED"}(pt||(pt={}));var yt=function(t){Object(Y.a)(n,t);var e=Object($.a)(n);function n(t){var o;return Object(W.a)(this,n),(o=e.call(this,t)).nextFrameActionId=void 0,o.resizeFrameId=void 0,o.textArea=void 0,o.saveTextArea=function(t){o.textArea=t},o.handleResize=function(t){var e=o.state.resizeStatus,n=o.props,r=n.autoSize,i=n.onResize;e===pt.NONE&&("function"===typeof i&&i(t),r&&o.resizeOnNextFrame())},o.resizeOnNextFrame=function(){cancelAnimationFrame(o.nextFrameActionId),o.nextFrameActionId=requestAnimationFrame(o.resizeTextarea)},o.resizeTextarea=function(){var t=o.props.autoSize;if(t&&o.textArea){var e=t.minRows,n=t.maxRows,r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;ct||((ct=document.createElement("textarea")).setAttribute("tab-index","-1"),ct.setAttribute("aria-hidden","true"),document.body.appendChild(ct)),t.getAttribute("wrap")?ct.setAttribute("wrap",t.getAttribute("wrap")):ct.removeAttribute("wrap");var i=dt(t,e),o=i.paddingSize,a=i.borderSize,u=i.boxSizing,s=i.sizingStyle;ct.setAttribute("style","".concat(s,";").concat(lt)),ct.value=t.value||t.placeholder||"";var c,l=Number.MIN_SAFE_INTEGER,f=Number.MAX_SAFE_INTEGER,h=ct.scrollHeight;if("border-box"===u?h+=a:"content-box"===u&&(h-=o),null!==n||null!==r){ct.value=" ";var d=ct.scrollHeight-o;null!==n&&(l=d*n,"border-box"===u&&(l=l+o+a),h=Math.max(l,h)),null!==r&&(f=d*r,"border-box"===u&&(f=f+o+a),c=h>f?"":"hidden",h=Math.min(f,h))}return{height:h,minHeight:l,maxHeight:f,overflowY:c,resize:"none"}}(o.textArea,!1,e,n);o.setState({textareaStyles:r,resizeStatus:pt.RESIZING},(function(){cancelAnimationFrame(o.resizeFrameId),o.resizeFrameId=requestAnimationFrame((function(){o.setState({resizeStatus:pt.RESIZED},(function(){o.resizeFrameId=requestAnimationFrame((function(){o.setState({resizeStatus:pt.NONE}),o.fixFirefoxAutoScroll()}))}))}))}))}},o.renderTextArea=function(){var t=o.props,e=t.prefixCls,n=void 0===e?"rc-textarea":e,u=t.autoSize,s=t.onResize,l=t.className,f=t.disabled,h=o.state,d=h.textareaStyles,p=h.resizeStatus,v=function(t,e){var n=Object(m.a)({},t);return Array.isArray(e)&&e.forEach((function(t){delete n[t]})),n}(o.props,["prefixCls","onPressEnter","autoSize","defaultValue","onResize"]),y=c()(n,l,Object(i.a)({},"".concat(n,"-disabled"),f));"value"in v&&(v.value=v.value||"");var g=Object(m.a)(Object(m.a)(Object(m.a)({},o.props.style),d),p===pt.RESIZING?{overflowX:"hidden",overflowY:"hidden"}:null);return a.createElement(st,{onResize:o.handleResize,disabled:!(u||s)},a.createElement("textarea",Object(r.a)({},v,{className:y,style:g,ref:o.saveTextArea})))},o.state={textareaStyles:{},resizeStatus:pt.NONE},o}return Object(G.a)(n,[{key:"componentDidUpdate",value:function(t){t.value===this.props.value&&mt()(t.autoSize,this.props.autoSize)||this.resizeTextarea()}},{key:"componentWillUnmount",value:function(){cancelAnimationFrame(this.nextFrameActionId),cancelAnimationFrame(this.resizeFrameId)}},{key:"fixFirefoxAutoScroll",value:function(){try{if(document.activeElement===this.textArea){var t=this.textArea.selectionStart,e=this.textArea.selectionEnd;this.textArea.setSelectionRange(t,e)}}catch(n){}}},{key:"render",value:function(){return this.renderTextArea()}}]),n}(a.Component),gt=function(t){Object(Y.a)(n,t);var e=Object($.a)(n);function n(t){var r;Object(W.a)(this,n),(r=e.call(this,t)).resizableTextArea=void 0,r.focus=function(){r.resizableTextArea.textArea.focus()},r.saveTextArea=function(t){r.resizableTextArea=t},r.handleChange=function(t){var e=r.props.onChange;r.setValue(t.target.value,(function(){r.resizableTextArea.resizeTextarea()})),e&&e(t)},r.handleKeyDown=function(t){var e=r.props,n=e.onPressEnter,i=e.onKeyDown;13===t.keyCode&&n&&n(t),i&&i(t)};var i="undefined"===typeof t.value||null===t.value?t.defaultValue:t.value;return r.state={value:i},r}return Object(G.a)(n,[{key:"setValue",value:function(t,e){"value"in this.props||this.setState({value:t},e)}},{key:"blur",value:function(){this.resizableTextArea.textArea.blur()}},{key:"render",value:function(){return a.createElement(yt,Object(r.a)({},this.props,{value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,ref:this.saveTextArea}))}}],[{key:"getDerivedStateFromProps",value:function(t){return"value"in t?{value:t.value}:null}}]),n}(a.Component),bt=n(72),wt=Object(x.a)("text","input");var _t=function(t){Object(Y.a)(n,t);var e=Object($.a)(n);function n(){return Object(W.a)(this,n),e.apply(this,arguments)}return Object(G.a)(n,[{key:"renderClearIcon",value:function(t){var e,n=this.props,r=n.value,o=n.disabled,u=n.readOnly,s=n.handleReset,l=n.suffix,f=!o&&!u&&r,h="".concat(t,"-clear-icon");return a.createElement(E.a,{onClick:s,onMouseDown:function(t){return t.preventDefault()},className:c()((e={},Object(i.a)(e,"".concat(h,"-hidden"),!f),Object(i.a)(e,"".concat(h,"-has-suffix"),!!l),e),h),role:"button"})}},{key:"renderTextAreaWithClearIcon",value:function(t,e,n){var r,o=this.props,u=o.value,s=o.allowClear,l=o.className,f=o.style,h=o.direction,d=o.bordered,p=o.hidden,v=o.status,m=n.status,y=n.hasFeedback;if(!s)return Object(B.a)(e,{value:u});var g,b=c()("".concat(t,"-affix-wrapper"),"".concat(t,"-affix-wrapper-textarea-with-clear-btn"),k("".concat(t,"-affix-wrapper"),T(m,v),y),(r={},Object(i.a)(r,"".concat(t,"-affix-wrapper-rtl"),"rtl"===h),Object(i.a)(r,"".concat(t,"-affix-wrapper-borderless"),!d),Object(i.a)(r,"".concat(l),!((g=this.props).addonBefore||g.addonAfter)&&l),r));return a.createElement("span",{className:b,style:f,hidden:p},Object(B.a)(e,{style:null,value:u}),this.renderClearIcon(t))}},{key:"render",value:function(){var t=this;return a.createElement(C.Consumer,null,(function(e){var n=t.props,r=n.prefixCls,i=n.inputType,o=n.element;if(i===wt[0])return t.renderTextAreaWithClearIcon(r,o,e)}))}}]),n}(a.Component),Et=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"===typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(t);ir&&(i=e),i}var xt=a.forwardRef((function(t,e){var n,u=t.prefixCls,s=t.bordered,l=void 0===s||s,f=t.showCount,h=void 0!==f&&f,d=t.maxLength,p=t.className,m=t.style,g=t.size,b=t.onCompositionStart,w=t.onCompositionEnd,_=t.onChange,E=t.status,O=Et(t,["prefixCls","bordered","showCount","maxLength","className","style","size","onCompositionStart","onCompositionEnd","onChange","status"]),x=a.useContext(I.b),P=x.getPrefixCls,N=x.direction,R=a.useContext(S.b),D=a.useContext(C),M=D.status,L=D.hasFeedback,F=D.isFormItemInput,U=D.feedbackIcon,V=T(M,E),B=a.useRef(null),z=a.useRef(null),H=a.useState(!1),q=Object(y.a)(H,2),W=q[0],G=q[1],Y=a.useRef(),$=a.useRef(0),K=Object(bt.a)(O.defaultValue,{value:O.value}),X=Object(y.a)(K,2),Q=X[0],J=X[1],Z=O.hidden,tt=function(t,e){void 0===O.value&&(J(t),null===e||void 0===e||e())},et=Number(d)>0,nt=P("input",u);a.useImperativeHandle(e,(function(){var t;return{resizableTextArea:null===(t=B.current)||void 0===t?void 0:t.resizableTextArea,focus:function(t){var e,n;!function(t,e){if(t){t.focus(e);var n=(e||{}).cursor;if(n){var r=t.value.length;switch(n){case"start":t.setSelectionRange(0,0);break;case"end":t.setSelectionRange(r,r);break;default:t.setSelectionRange(0,r)}}}}(null===(n=null===(e=B.current)||void 0===e?void 0:e.resizableTextArea)||void 0===n?void 0:n.textArea,t)},blur:function(){var t;return null===(t=B.current)||void 0===t?void 0:t.blur()}}}));var rt=a.createElement(gt,Object(r.a)({},Object(A.a)(O,["allowClear"]),{className:c()((n={},Object(i.a)(n,"".concat(nt,"-borderless"),!l),Object(i.a)(n,p,p&&!h),Object(i.a)(n,"".concat(nt,"-sm"),"small"===R||"small"===g),Object(i.a)(n,"".concat(nt,"-lg"),"large"===R||"large"===g),n),k(nt,V)),style:h?void 0:m,prefixCls:nt,onCompositionStart:function(t){G(!0),Y.current=Q,$.current=t.currentTarget.selectionStart,null===b||void 0===b||b(t)},onChange:function(t){var e=t.target.value;!W&&et&&(e=St(t.target.selectionStart>=d+1||t.target.selectionStart===e.length||!t.target.selectionStart,Q,e,d));tt(e),j(t.currentTarget,t,_,e)},onCompositionEnd:function(t){var e;G(!1);var n=t.currentTarget.value;et&&(n=St($.current>=d+1||$.current===(null===(e=Y.current)||void 0===e?void 0:e.length),Y.current,n,d));n!==Q&&(tt(n),j(t.currentTarget,t,_,n)),null===w||void 0===w||w(t)},ref:B})),it=function(t){return"undefined"===typeof t||null===t?"":String(t)}(Q);W||!et||null!==O.value&&void 0!==O.value||(it=Ot(it,d));var ot=a.createElement(_t,Object(r.a)({},O,{prefixCls:nt,direction:N,inputType:"text",value:it,element:rt,handleReset:function(t){var e,n;tt("",(function(){var t;null===(t=B.current)||void 0===t||t.focus()})),j(null===(n=null===(e=B.current)||void 0===e?void 0:e.resizableTextArea)||void 0===n?void 0:n.textArea,t,_)},ref:z,bordered:l,status:E,style:h?void 0:m}));if(h||L){var at,ut=Object(v.a)(it).length,st="";return st="object"===Object(o.a)(h)?h.formatter({count:ut,maxLength:d}):"".concat(ut).concat(et?" / ".concat(d):""),a.createElement("div",{hidden:Z,className:c()("".concat(nt,"-textarea"),(at={},Object(i.a)(at,"".concat(nt,"-textarea-rtl"),"rtl"===N),Object(i.a)(at,"".concat(nt,"-textarea-show-count"),h),Object(i.a)(at,"".concat(nt,"-textarea-in-form-item"),F),at),k("".concat(nt,"-textarea"),V,L),p),style:m,"data-count":st},ot,L&&a.createElement("span",{className:"".concat(nt,"-textarea-suffix")},U))}return ot})),kt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"}}]},name:"eye",theme:"outlined"},Tt=function(t,e){return a.createElement(L.a,Object(m.a)(Object(m.a)({},t),{},{ref:e,icon:kt}))};Tt.displayName="EyeOutlined";var It=a.forwardRef(Tt),At={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z"}},{tag:"path",attrs:{d:"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z"}}]},name:"eye-invisible",theme:"outlined"},Ct=function(t,e){return a.createElement(L.a,Object(m.a)(Object(m.a)({},t),{},{ref:e,icon:At}))};Ct.displayName="EyeInvisibleOutlined";var Pt=a.forwardRef(Ct),Nt=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"===typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(t);i=0;u--)(i=t[u])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a}function s(t,e){return function(n,r){e(n,r,t)}}function c(t,e){if("object"===typeof Reflect&&"function"===typeof Reflect.metadata)return Reflect.metadata(t,e)}function l(t,e,n,r){return new(n||(n=Promise))((function(i,o){function a(t){try{s(r.next(t))}catch(e){o(e)}}function u(t){try{s(r.throw(t))}catch(e){o(e)}}function s(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,u)}s((r=r.apply(t,e||[])).next())}))}function f(t,e){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(o){return function(u){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(t,e){var n="function"===typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,i,o=n.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(u){i={error:u}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function m(){for(var t=[],e=0;e1||u(t,e)}))})}function u(t,e){try{(n=i[t](e)).value instanceof g?Promise.resolve(n.value.v).then(s,c):l(o[0][2],n)}catch(r){l(o[0][3],r)}var n}function s(t){u("next",t)}function c(t){u("throw",t)}function l(t,e){t(e),o.shift(),o.length&&u(o[0][0],o[0][1])}}function w(t){var e,n;return e={},r("next"),r("throw",(function(t){throw t})),r("return"),e[Symbol.iterator]=function(){return this},e;function r(r,i){e[r]=t[r]?function(e){return(n=!n)?{value:g(t[r](e)),done:"return"===r}:i?i(e):e}:i}}function _(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=p(t),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(n){e[n]=t[n]&&function(e){return new Promise((function(r,i){(function(t,e,n,r){Promise.resolve(r).then((function(e){t({value:e,done:n})}),e)})(r,i,(e=t[n](e)).done,e.value)}))}}}function E(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function O(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function S(t){return t&&t.__esModule?t:{default:t}}function x(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function k(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}},,function(t,e,n){},function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r=n(37),i=(Object(r.a)("bottomLeft","bottomRight","topLeft","topRight"),function(t,e,n){return void 0!==n?n:"".concat(t,"-").concat(e)})},,function(t,e,n){var r=n(58)(Object,"create");t.exports=r},function(t,e,n){var r=n(272),i=n(273),o=n(274),a=n(275),u=n(276);function s(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e0&&void 0!==arguments[0]?arguments[0]:{},e=t.mark;return e?e.startsWith("data-")?e:"data-".concat(e):"rc-util-key"}function o(t){return t.attachTo?t.attachTo:document.querySelector("head")||document.body}function a(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Object(r.a)())return null;var i,a=document.createElement("style");(null===(e=n.csp)||void 0===e?void 0:e.nonce)&&(a.nonce=null===(i=n.csp)||void 0===i?void 0:i.nonce);a.innerHTML=t;var u=o(n),s=u.firstChild;return n.prepend&&u.prepend?u.prepend(a):n.prepend&&s?u.insertBefore(a,s):u.appendChild(a),a}var u=new Map;function s(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=o(e);return Array.from(u.get(n).children).find((function(n){return"STYLE"===n.tagName&&n.getAttribute(i(e))===t}))}function c(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=o(n);if(!u.has(r)){var c=a("",n),l=c.parentNode;u.set(r,l),l.removeChild(c)}var f=s(e,n);if(f){var h,d,p;if((null===(h=n.csp)||void 0===h?void 0:h.nonce)&&f.nonce!==(null===(d=n.csp)||void 0===d?void 0:d.nonce))f.nonce=null===(p=n.csp)||void 0===p?void 0:p.nonce;return f.innerHTML!==t&&(f.innerHTML=t),f}var v=a(t,n);return v.setAttribute(i(n),e),v}},function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r=n(0);function i(t,e,n){var i=r.useRef({});return"value"in i.current&&!n(i.current.condition,e)||(i.current.value=t(),i.current.condition=e),i.current.value}},function(t,e,n){"use strict";(function(t){var n=function(){if("undefined"!==typeof Map)return Map;function t(t,e){var n=-1;return t.some((function(t,r){return t[0]===e&&(n=r,!0)})),n}return function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){var n=t(this.__entries__,e),r=this.__entries__[n];return r&&r[1]},e.prototype.set=function(e,n){var r=t(this.__entries__,e);~r?this.__entries__[r][1]=n:this.__entries__.push([e,n])},e.prototype.delete=function(e){var n=this.__entries__,r=t(n,e);~r&&n.splice(r,1)},e.prototype.has=function(e){return!!~t(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(t,e){void 0===e&&(e=null);for(var n=0,r=this.__entries__;n0},t.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),u?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e;a.some((function(t){return!!~n.indexOf(t)}))&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),c=function(t,e){for(var n=0,r=Object.keys(e);n0},t}(),_="undefined"!==typeof WeakMap?new WeakMap:new n,E=function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=s.getInstance(),r=new w(e,n,this);_.set(this,r)};["observe","unobserve","disconnect"].forEach((function(t){E.prototype[t]=function(){var e;return(e=_.get(this))[t].apply(e,arguments)}}));var O="undefined"!==typeof i.ResizeObserver?i.ResizeObserver:E;e.a=O}).call(this,n(57))},function(t,e,n){"use strict";function r(t){if("undefined"!==typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}n.d(e,"a",(function(){return r}))},function(t,e,n){var r=n(100),i=n(372),o=n(394),a=n(128),u=n(78),s=n(398),c=n(162),l=n(189),f=c((function(t,e){var n={};if(null==t)return n;var c=!1;e=r(e,(function(e){return e=a(e,t),c||(c=e.length>1),e})),u(t,l(t),n),c&&(n=i(n,7,s));for(var f=e.length;f--;)o(n,e[f]);return n}));t.exports=f},function(t,e,n){"use strict";function r(t){return"/"===t.charAt(0)}function i(t,e){for(var n=e,r=n+1,i=t.length;r=0;h--){var d=a[h];"."===d?i(a,h):".."===d?(i(a,h),f++):f&&(i(a,h),f--)}if(!c)for(;f--;f)a.unshift("..");!c||""===a[0]||a[0]&&r(a[0])||a.unshift("");var p=a.join("/");return n&&"/"!==p.substr(-1)&&(p+="/"),p}},function(t,e,n){"use strict";function r(t){return t.valueOf?t.valueOf():Object.prototype.valueOf.call(t)}e.a=function t(e,n){if(e===n)return!0;if(null==e||null==n)return!1;if(Array.isArray(e))return Array.isArray(n)&&e.length===n.length&&e.every((function(e,r){return t(e,n[r])}));if("object"===typeof e||"object"===typeof n){var i=r(e),o=r(n);return i!==e||o!==n?t(i,o):Object.keys(Object.assign({},e,n)).every((function(r){return t(e[r],n[r])}))}return!1}},function(t,e,n){"use strict";var r=n(21);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=r(n(405)).default;e.default=i},function(t,e,n){"use strict";n.d(e,"b",(function(){return gt})),n.d(e,"a",(function(){return E}));var r=n(0),i=n.n(r),o=n(4),a=n(25),u=n(5),s=n(3),c=n(10),l=n(16),f=n(17),h=n(55),d=n(19),p=n(20),v=n(27);var m={};function y(t,e){0}function g(t,e,n){e||m[n]||(t(!1,n),m[n]=!0)}var b=function(t,e){g(y,t,e)},w="RC_FORM_INTERNAL_HOOKS",_=function(){b(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},E=r.createContext({getFieldValue:_,getFieldsValue:_,getFieldError:_,getFieldWarning:_,getFieldsError:_,isFieldsTouched:_,isFieldTouched:_,isFieldValidating:_,isFieldsValidating:_,resetFields:_,setFields:_,setFieldsValue:_,validateFields:_,submit:_,getInternalHooks:function(){return _(),{dispatch:_,initEntityValue:_,registerField:_,useSubscribe:_,setInitialValues:_,destroyForm:_,setCallbacks:_,registerWatch:_,getFields:_,setValidateMessages:_,setPreserve:_,getInitialValue:_}}});function O(t){return void 0===t||null===t?[]:Array.isArray(t)?t:[t]}var S=n(29),x=n(48),k=n(210),T="'${name}' is not a valid ${type}",I={default:"Validation error on field '${name}'",required:"'${name}' is required",enum:"'${name}' must be one of [${enum}]",whitespace:"'${name}' cannot be empty",date:{format:"'${name}' is invalid for format date",parse:"'${name}' could not be parsed as date",invalid:"'${name}' is invalid date"},types:{string:T,method:T,array:T,object:T,number:T,date:T,boolean:T,integer:T,float:T,regexp:T,email:T,url:T,hex:T},string:{len:"'${name}' must be exactly ${len} characters",min:"'${name}' must be at least ${min} characters",max:"'${name}' cannot be longer than ${max} characters",range:"'${name}' must be between ${min} and ${max} characters"},number:{len:"'${name}' must equal ${len}",min:"'${name}' cannot be less than ${min}",max:"'${name}' cannot be greater than ${max}",range:"'${name}' must be between ${min} and ${max}"},array:{len:"'${name}' must be exactly ${len} in length",min:"'${name}' cannot be less than ${min} in length",max:"'${name}' cannot be greater than ${max} in length",range:"'${name}' must be between ${min} and ${max} in length"},pattern:{mismatch:"'${name}' does not match pattern ${pattern}"}},A=n(12);function C(t,e){for(var n=t,r=0;r3&&void 0!==arguments[3]&&arguments[3];return e.length&&r&&void 0===n&&!C(t,e.slice(0,-1))?t:D(t,e,n,r)}function L(t){return Array.isArray(t)?function(t){return t.map((function(t){return L(t)}))}(t):"object"===Object(A.a)(t)&&null!==t?function(t){if(Object.getPrototypeOf(t)===Object.prototype){var e={};for(var n in t)e[n]=L(t[n]);return e}return t}(t):t}var F=L;function U(t){return O(t)}function V(t,e){return C(t,e)}function B(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=M(t,e,n,r);return i}function z(t,e){var n={};return e.forEach((function(e){var r=V(t,e);n=B(n,e,r)})),n}function H(t,e){return t&&t.some((function(t){return Y(t,e)}))}function q(t){return"object"===Object(A.a)(t)&&null!==t&&Object.getPrototypeOf(t)===Object.prototype}function W(t,e){var n=Array.isArray(t)?Object(c.a)(t):Object(s.a)({},t);return e?(Object.keys(e).forEach((function(t){var r=n[t],i=e[t],o=q(r)&&q(i);n[t]=o?W(r,i||{}):F(i)})),n):n}function G(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r=r||n<0||n>=r)return t;var i=t[e],o=e-n;return o>0?[].concat(Object(c.a)(t.slice(0,n)),[i],Object(c.a)(t.slice(n,e)),Object(c.a)(t.slice(e+1,r))):o<0?[].concat(Object(c.a)(t.slice(0,e)),Object(c.a)(t.slice(e+1,n+1)),[i],Object(c.a)(t.slice(n+1,r))):t}var X=k.a;function Q(t,e){return t.replace(/\$\{\w+\}/g,(function(t){var n=t.slice(2,-1);return e[n]}))}function J(t,e,n,r,i){return Z.apply(this,arguments)}function Z(){return(Z=Object(x.a)(Object(S.a)().mark((function t(e,n,i,o,a){var l,f,h,d,p,v,m,y,g;return Object(S.a)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return delete(l=Object(s.a)({},i)).ruleIndex,l.validator&&(f=l.validator,l.validator=function(){try{return f.apply(void 0,arguments)}catch(t){return console.error(t),Promise.reject("CODE_LOGIC_ERROR")}}),h=null,l&&"array"===l.type&&l.defaultField&&(h=l.defaultField,delete l.defaultField),d=new X(Object(u.a)({},e,[l])),p=G({},I,o.validateMessages),d.messages(p),v=[],t.prev=9,t.next=12,Promise.resolve(d.validate(Object(u.a)({},e,n),Object(s.a)({},o)));case 12:t.next=17;break;case 14:t.prev=14,t.t0=t.catch(9),t.t0.errors&&(v=t.t0.errors.map((function(t,e){var n=t.message,i="CODE_LOGIC_ERROR"===n?p.default:n;return r.isValidElement(i)?r.cloneElement(i,{key:"error_".concat(e)}):i})));case 17:if(v.length||!h){t.next=22;break}return t.next=20,Promise.all(n.map((function(t,n){return J("".concat(e,".").concat(n),t,h,o,a)})));case 20:return m=t.sent,t.abrupt("return",m.reduce((function(t,e){return[].concat(Object(c.a)(t),Object(c.a)(e))}),[]));case 22:return y=Object(s.a)(Object(s.a)({},i),{},{name:e,enum:(i.enum||[]).join(", ")},a),g=v.map((function(t){return"string"===typeof t?Q(t,y):t})),t.abrupt("return",g);case 25:case"end":return t.stop()}}),t,null,[[9,14]])})))).apply(this,arguments)}function tt(t,e,n,r,i,o){var a,u=t.join("."),c=n.map((function(t,e){var n=t.validator,r=Object(s.a)(Object(s.a)({},t),{},{ruleIndex:e});return n&&(r.validator=function(t,e,r){var i=!1,o=n(t,e,(function(){for(var t=arguments.length,e=new Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:it;if(o.validatePromise===r){o.validatePromise=null;var e=[],n=[];t.forEach((function(t){var r=t.rule.warningOnly,i=t.errors,o=void 0===i?it:i;r?n.push.apply(n,Object(c.a)(o)):e.push.apply(e,Object(c.a)(o))})),o.errors=e,o.warnings=n,o.triggerMetaEvent(),o.reRender()}})),h}));return o.validatePromise=r,o.dirty=!0,o.errors=it,o.warnings=it,o.triggerMetaEvent(),o.reRender(),r},o.isFieldValidating=function(){return!!o.validatePromise},o.isFieldTouched=function(){return o.touched},o.isFieldDirty=function(){return!(!o.dirty&&void 0===o.props.initialValue)||void 0!==(0,o.props.fieldContext.getInternalHooks(w).getInitialValue)(o.getNamePath())},o.getErrors=function(){return o.errors},o.getWarnings=function(){return o.warnings},o.isListField=function(){return o.props.isListField},o.isList=function(){return o.props.isList},o.isPreserve=function(){return o.props.preserve},o.getMeta=function(){return o.prevValidating=o.isFieldValidating(),{touched:o.isFieldTouched(),validating:o.prevValidating,errors:o.errors,warnings:o.warnings,name:o.getNamePath()}},o.getOnlyChild=function(t){if("function"===typeof t){var e=o.getMeta();return Object(s.a)(Object(s.a)({},o.getOnlyChild(t(o.getControlled(),e,o.props.fieldContext))),{},{isFunction:!0})}var n=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=[];return i.a.Children.forEach(e,(function(e){(void 0!==e&&null!==e||n.keepEmpty)&&(Array.isArray(e)?r=r.concat(t(e)):Object(v.isFragment)(e)&&e.props?r=r.concat(t(e.props.children,n)):r.push(e))})),r}(t);return 1===n.length&&r.isValidElement(n[0])?{child:n[0],isFunction:!1}:{child:n,isFunction:!1}},o.getValue=function(t){var e=o.props.fieldContext.getFieldsValue,n=o.getNamePath();return V(t||e(!0),n)},o.getControlled=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=o.props,n=e.trigger,r=e.validateTrigger,i=e.getValueFromEvent,a=e.normalize,c=e.valuePropName,l=e.getValueProps,f=e.fieldContext,h=void 0!==r?r:f.validateTrigger,d=o.getNamePath(),p=f.getInternalHooks,v=f.getFieldsValue,m=p(w),y=m.dispatch,g=o.getValue(),b=l||function(t){return Object(u.a)({},c,t)},_=t[n],E=Object(s.a)(Object(s.a)({},t),b(g));E[n]=function(){var t;o.touched=!0,o.dirty=!0,o.triggerMetaEvent();for(var e=arguments.length,n=new Array(e),r=0;r=0&&e<=n.length?(l.keys=[].concat(Object(c.a)(l.keys.slice(0,e)),[l.id],Object(c.a)(l.keys.slice(e))),o([].concat(Object(c.a)(n.slice(0,e)),[t],Object(c.a)(n.slice(e))))):(l.keys=[].concat(Object(c.a)(l.keys),[l.id]),o([].concat(Object(c.a)(n),[t]))),l.id+=1},remove:function(t){var e=s(),n=new Set(Array.isArray(t)?t:[t]);n.size<=0||(l.keys=l.keys.filter((function(t,e){return!n.has(e)})),o(e.filter((function(t,e){return!n.has(e)}))))},move:function(t,e){if(t!==e){var n=s();t<0||t>=n.length||e<0||e>=n.length||(l.keys=K(l.keys,t,e),o(K(n,t,e)))}}},d=r||[];return Array.isArray(d)||(d=[]),i(d.map((function(t,e){var n=l.keys[e];return void 0===n&&(l.keys[e]=l.id,n=l.keys[e],l.id+=1),{name:e,key:n,isListField:!0}})),h,e)}))))},lt=n(8);var ft="__@field_split__";function ht(t){return t.map((function(t){return"".concat(Object(A.a)(t),":").concat(t)})).join(ft)}var dt=function(){function t(){Object(l.a)(this,t),this.kvs=new Map}return Object(f.a)(t,[{key:"set",value:function(t,e){this.kvs.set(ht(t),e)}},{key:"get",value:function(t){return this.kvs.get(ht(t))}},{key:"update",value:function(t,e){var n=e(this.get(t));n?this.set(t,n):this.delete(t)}},{key:"delete",value:function(t){this.kvs.delete(ht(t))}},{key:"map",value:function(t){return Object(c.a)(this.kvs.entries()).map((function(e){var n=Object(lt.a)(e,2),r=n[0],i=n[1],o=r.split(ft);return t({key:o.map((function(t){var e=t.match(/^([^:]*):(.*)$/),n=Object(lt.a)(e,3),r=n[1],i=n[2];return"number"===r?Number(i):i})),value:i})}))}},{key:"toJSON",value:function(){var t={};return this.map((function(e){var n=e.key,r=e.value;return t[n.join(".")]=r,null})),t}}]),t}(),pt=["name","errors"],vt=Object(f.a)((function t(e){var n=this;Object(l.a)(this,t),this.formHooked=!1,this.forceRootUpdate=void 0,this.subscribable=!0,this.store={},this.fieldEntities=[],this.initialValues={},this.callbacks={},this.validateMessages=null,this.preserve=null,this.lastValidatePromise=null,this.getForm=function(){return{getFieldValue:n.getFieldValue,getFieldsValue:n.getFieldsValue,getFieldError:n.getFieldError,getFieldWarning:n.getFieldWarning,getFieldsError:n.getFieldsError,isFieldsTouched:n.isFieldsTouched,isFieldTouched:n.isFieldTouched,isFieldValidating:n.isFieldValidating,isFieldsValidating:n.isFieldsValidating,resetFields:n.resetFields,setFields:n.setFields,setFieldsValue:n.setFieldsValue,validateFields:n.validateFields,submit:n.submit,_init:!0,getInternalHooks:n.getInternalHooks}},this.getInternalHooks=function(t){return t===w?(n.formHooked=!0,{dispatch:n.dispatch,initEntityValue:n.initEntityValue,registerField:n.registerField,useSubscribe:n.useSubscribe,setInitialValues:n.setInitialValues,destroyForm:n.destroyForm,setCallbacks:n.setCallbacks,setValidateMessages:n.setValidateMessages,getFields:n.getFields,setPreserve:n.setPreserve,getInitialValue:n.getInitialValue,registerWatch:n.registerWatch}):(b(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)},this.useSubscribe=function(t){n.subscribable=t},this.prevWithoutPreserves=null,this.setInitialValues=function(t,e){if(n.initialValues=t||{},e){var r,i=G({},t,n.store);null===(r=n.prevWithoutPreserves)||void 0===r||r.map((function(e){var n=e.key;i=B(i,n,V(t,n))})),n.prevWithoutPreserves=null,n.updateStore(i)}},this.destroyForm=function(){var t=new dt;n.getFieldEntities(!0).forEach((function(e){n.isMergedPreserve(e.isPreserve())||t.set(e.getNamePath(),!0)})),n.prevWithoutPreserves=t},this.getInitialValue=function(t){var e=V(n.initialValues,t);return t.length?F(e):e},this.setCallbacks=function(t){n.callbacks=t},this.setValidateMessages=function(t){n.validateMessages=t},this.setPreserve=function(t){n.preserve=t},this.watchList=[],this.registerWatch=function(t){return n.watchList.push(t),function(){n.watchList=n.watchList.filter((function(e){return e!==t}))}},this.notifyWatch=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(n.watchList.length){var e=n.getFieldsValue();n.watchList.forEach((function(n){n(e,t)}))}},this.timeoutId=null,this.warningUnhooked=function(){0},this.updateStore=function(t){n.store=t},this.getFieldEntities=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t?n.fieldEntities.filter((function(t){return t.getNamePath().length})):n.fieldEntities},this.getFieldsMap=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=new dt;return n.getFieldEntities(t).forEach((function(t){var n=t.getNamePath();e.set(n,t)})),e},this.getFieldEntitiesForNamePathList=function(t){if(!t)return n.getFieldEntities(!0);var e=n.getFieldsMap(!0);return t.map((function(t){var n=U(t);return e.get(n)||{INVALIDATE_NAME_PATH:U(t)}}))},this.getFieldsValue=function(t,e){if(n.warningUnhooked(),!0===t&&!e)return n.store;var r=n.getFieldEntitiesForNamePathList(Array.isArray(t)?t:null),i=[];return r.forEach((function(n){var r,o="INVALIDATE_NAME_PATH"in n?n.INVALIDATE_NAME_PATH:n.getNamePath();if(t||!(null===(r=n.isListField)||void 0===r?void 0:r.call(n)))if(e){var a="getMeta"in n?n.getMeta():null;e(a)&&i.push(o)}else i.push(o)})),z(n.store,i.map(U))},this.getFieldValue=function(t){n.warningUnhooked();var e=U(t);return V(n.store,e)},this.getFieldsError=function(t){return n.warningUnhooked(),n.getFieldEntitiesForNamePathList(t).map((function(e,n){return e&&!("INVALIDATE_NAME_PATH"in e)?{name:e.getNamePath(),errors:e.getErrors(),warnings:e.getWarnings()}:{name:U(t[n]),errors:[],warnings:[]}}))},this.getFieldError=function(t){n.warningUnhooked();var e=U(t);return n.getFieldsError([e])[0].errors},this.getFieldWarning=function(t){n.warningUnhooked();var e=U(t);return n.getFieldsError([e])[0].warnings},this.isFieldsTouched=function(){n.warningUnhooked();for(var t=arguments.length,e=new Array(t),r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=new dt,r=n.getFieldEntities(!0);r.forEach((function(t){var n=t.props.initialValue,r=t.getNamePath();if(void 0!==n){var i=e.get(r)||new Set;i.add({entity:t,value:n}),e.set(r,i)}}));var i,o=function(r){r.forEach((function(r){if(void 0!==r.props.initialValue){var i=r.getNamePath();if(void 0!==n.getInitialValue(i))b(!1,"Form already set 'initialValues' with path '".concat(i.join("."),"'. Field can not overwrite it."));else{var o=e.get(i);if(o&&o.size>1)b(!1,"Multiple Field with path '".concat(i.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(o){var a=n.getFieldValue(i);t.skipExist&&void 0!==a||n.updateStore(B(n.store,i,Object(c.a)(o)[0].value))}}}}))};t.entities?i=t.entities:t.namePathList?(i=[],t.namePathList.forEach((function(t){var n,r=e.get(t);r&&(n=i).push.apply(n,Object(c.a)(Object(c.a)(r).map((function(t){return t.entity}))))}))):i=r,o(i)},this.resetFields=function(t){n.warningUnhooked();var e=n.store;if(!t)return n.updateStore(G({},n.initialValues)),n.resetWithFieldInitialValue(),n.notifyObservers(e,null,{type:"reset"}),void n.notifyWatch();var r=t.map(U);r.forEach((function(t){var e=n.getInitialValue(t);n.updateStore(B(n.store,t,e))})),n.resetWithFieldInitialValue({namePathList:r}),n.notifyObservers(e,r,{type:"reset"}),n.notifyWatch(r)},this.setFields=function(t){n.warningUnhooked();var e=n.store,r=[];t.forEach((function(t){var i=t.name,o=(t.errors,Object(a.a)(t,pt)),u=U(i);r.push(u),"value"in o&&n.updateStore(B(n.store,u,o.value)),n.notifyObservers(e,[u],{type:"setField",data:t})})),n.notifyWatch(r)},this.getFields=function(){return n.getFieldEntities(!0).map((function(t){var e=t.getNamePath(),r=t.getMeta(),i=Object(s.a)(Object(s.a)({},r),{},{name:e,value:n.getFieldValue(e)});return Object.defineProperty(i,"originRCField",{value:!0}),i}))},this.initEntityValue=function(t){var e=t.props.initialValue;if(void 0!==e){var r=t.getNamePath();void 0===V(n.store,r)&&n.updateStore(B(n.store,r,e))}},this.isMergedPreserve=function(t){var e=void 0!==t?t:n.preserve;return null===e||void 0===e||e},this.registerField=function(t){n.fieldEntities.push(t);var e=t.getNamePath();if(n.notifyWatch([e]),void 0!==t.props.initialValue){var r=n.store;n.resetWithFieldInitialValue({entities:[t],skipExist:!0}),n.notifyObservers(r,[t.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(r,i){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(n.fieldEntities=n.fieldEntities.filter((function(e){return e!==t})),!n.isMergedPreserve(i)&&(!r||o.length>1)){var a=r?void 0:n.getInitialValue(e);if(e.length&&n.getFieldValue(e)!==a&&n.fieldEntities.every((function(t){return!Y(t.getNamePath(),e)}))){var u=n.store;n.updateStore(B(u,e,a,!0)),n.notifyObservers(u,[e],{type:"remove"}),n.triggerDependenciesUpdate(u,e)}}n.notifyWatch([e])}},this.dispatch=function(t){switch(t.type){case"updateValue":var e=t.namePath,r=t.value;n.updateValue(e,r);break;case"validateField":var i=t.namePath,o=t.triggerName;n.validateFields([i],{triggerName:o})}},this.notifyObservers=function(t,e,r){if(n.subscribable){var i=Object(s.a)(Object(s.a)({},r),{},{store:n.getFieldsValue(!0)});n.getFieldEntities().forEach((function(n){(0,n.onStoreChange)(t,e,i)}))}else n.forceRootUpdate()},this.triggerDependenciesUpdate=function(t,e){var r=n.getDependencyChildrenFields(e);return r.length&&n.validateFields(r),n.notifyObservers(t,r,{type:"dependenciesUpdate",relatedFields:[e].concat(Object(c.a)(r))}),r},this.updateValue=function(t,e){var r=U(t),i=n.store;n.updateStore(B(n.store,r,e)),n.notifyObservers(i,[r],{type:"valueUpdate",source:"internal"}),n.notifyWatch([r]);var o=n.triggerDependenciesUpdate(i,r),a=n.callbacks.onValuesChange;a&&a(z(n.store,[r]),n.getFieldsValue());n.triggerOnFieldsChange([r].concat(Object(c.a)(o)))},this.setFieldsValue=function(t){n.warningUnhooked();var e=n.store;if(t){var r=G(n.store,t);n.updateStore(r)}n.notifyObservers(e,null,{type:"valueUpdate",source:"external"}),n.notifyWatch()},this.getDependencyChildrenFields=function(t){var e=new Set,r=[],i=new dt;n.getFieldEntities().forEach((function(t){(t.props.dependencies||[]).forEach((function(e){var n=U(e);i.update(n,(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Set;return e.add(t),e}))}))}));return function t(n){(i.get(n)||new Set).forEach((function(n){if(!e.has(n)){e.add(n);var i=n.getNamePath();n.isFieldDirty()&&i.length&&(r.push(i),t(i))}}))}(t),r},this.triggerOnFieldsChange=function(t,e){var r=n.callbacks.onFieldsChange;if(r){var i=n.getFields();if(e){var o=new dt;e.forEach((function(t){var e=t.name,n=t.errors;o.set(e,n)})),i.forEach((function(t){t.errors=o.get(t.name)||t.errors}))}r(i.filter((function(e){var n=e.name;return H(t,n)})),i)}},this.validateFields=function(t,e){n.warningUnhooked();var r=!!t,i=r?t.map(U):[],o=[];n.getFieldEntities(!0).forEach((function(a){if(r||i.push(a.getNamePath()),(null===e||void 0===e?void 0:e.recursive)&&r){var u=a.getNamePath();u.every((function(e,n){return t[n]===e||void 0===t[n]}))&&i.push(u)}if(a.props.rules&&a.props.rules.length){var l=a.getNamePath();if(!r||H(i,l)){var f=a.validateRules(Object(s.a)({validateMessages:Object(s.a)(Object(s.a)({},I),n.validateMessages)},e));o.push(f.then((function(){return{name:l,errors:[],warnings:[]}})).catch((function(t){var e=[],n=[];return t.forEach((function(t){var r=t.rule.warningOnly,i=t.errors;r?n.push.apply(n,Object(c.a)(i)):e.push.apply(e,Object(c.a)(i))})),e.length?Promise.reject({name:l,errors:e,warnings:n}):{name:l,errors:e,warnings:n}})))}}}));var a=function(t){var e=!1,n=t.length,r=[];return t.length?new Promise((function(i,o){t.forEach((function(t,a){t.catch((function(t){return e=!0,t})).then((function(t){n-=1,r[a]=t,n>0||(e&&o(r),i(r))}))}))})):Promise.resolve([])}(o);n.lastValidatePromise=a,a.catch((function(t){return t})).then((function(t){var e=t.map((function(t){return t.name}));n.notifyObservers(n.store,e,{type:"validateFinish"}),n.triggerOnFieldsChange(e,t)}));var u=a.then((function(){return n.lastValidatePromise===a?Promise.resolve(n.getFieldsValue(i)):Promise.reject([])})).catch((function(t){var e=t.filter((function(t){return t&&t.errors.length}));return Promise.reject({values:n.getFieldsValue(i),errorFields:e,outOfDate:n.lastValidatePromise!==a})}));return u.catch((function(t){return t})),u},this.submit=function(){n.warningUnhooked(),n.validateFields().then((function(t){var e=n.callbacks.onFinish;if(e)try{e(t)}catch(r){console.error(r)}})).catch((function(t){var e=n.callbacks.onFinishFailed;e&&e(t)}))},this.forceRootUpdate=e}));var mt=function(t){var e=r.useRef(),n=r.useState({}),i=Object(lt.a)(n,2)[1];if(!e.current)if(t)e.current=t;else{var o=new vt((function(){i({})}));e.current=o.getForm()}return[e.current]},yt=r.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),gt=function(t){var e=t.validateMessages,n=t.onFormChange,i=t.onFormFinish,o=t.children,a=r.useContext(yt),c=r.useRef({});return r.createElement(yt.Provider,{value:Object(s.a)(Object(s.a)({},a),{},{validateMessages:Object(s.a)(Object(s.a)({},a.validateMessages),e),triggerFormChange:function(t,e){n&&n(t,{changedFields:e,forms:c.current}),a.triggerFormChange(t,e)},triggerFormFinish:function(t,e){i&&i(t,{values:e,forms:c.current}),a.triggerFormFinish(t,e)},registerForm:function(t,e){t&&(c.current=Object(s.a)(Object(s.a)({},c.current),{},Object(u.a)({},t,e))),a.registerForm(t,e)},unregisterForm:function(t){var e=Object(s.a)({},c.current);delete e[t],c.current=e,a.unregisterForm(t)}})},o)},bt=yt,wt=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed"],_t=function(t,e){var n=t.name,i=t.initialValues,u=t.fields,l=t.form,f=t.preserve,h=t.children,d=t.component,p=void 0===d?"form":d,v=t.validateMessages,m=t.validateTrigger,y=void 0===m?"onChange":m,g=t.onValuesChange,b=t.onFieldsChange,_=t.onFinish,O=t.onFinishFailed,S=Object(a.a)(t,wt),x=r.useContext(bt),k=mt(l),T=Object(lt.a)(k,1)[0],I=T.getInternalHooks(w),C=I.useSubscribe,P=I.setInitialValues,N=I.setCallbacks,j=I.setValidateMessages,R=I.setPreserve,D=I.destroyForm;r.useImperativeHandle(e,(function(){return T})),r.useEffect((function(){return x.registerForm(n,T),function(){x.unregisterForm(n)}}),[x,T,n]),j(Object(s.a)(Object(s.a)({},x.validateMessages),v)),N({onValuesChange:g,onFieldsChange:function(t){if(x.triggerFormChange(n,t),b){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;i0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1?arguments[1]:void 0,n=Object(r.useState)(),i=Object(lt.a)(n,2),o=i[0],a=i[1],u=Object(r.useMemo)((function(){return Et(o)}),[o]),s=Object(r.useRef)(u);s.current=u;var c=Object(r.useContext)(E),l=e||c,f=l&&l._init,h=U(t),d=Object(r.useRef)(h);return d.current=h,Object(r.useEffect)((function(){if(f){var t=l.getFieldsValue,e=(0,(0,l.getInternalHooks)(w).registerWatch)((function(t){var e=V(t,d.current),n=Et(e);s.current!==n&&a(e)})),n=V(t(),d.current);return a(n),e}}),[]),o},St=r.forwardRef(_t);St.FormProvider=gt,St.Field=ut,St.List=ct,St.useForm=mt,St.useWatch=Ot},function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r=n(110);function i(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(s){i=!0,o=s}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return n}}(t,e)||Object(r.a)(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},function(t,e,n){"use strict";var r=n(3),i=n(0),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"exclamation-circle",theme:"filled"},a=n(15),u=function(t,e){return i.createElement(a.a,Object(r.a)(Object(r.a)({},t),{},{ref:e,icon:o}))};u.displayName="ExclamationCircleFilled";e.a=i.forwardRef(u)},function(t,e){var n,r,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function u(t){if(n===setTimeout)return setTimeout(t,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"===typeof setTimeout?setTimeout:o}catch(t){n=o}try{r="function"===typeof clearTimeout?clearTimeout:a}catch(t){r=a}}();var s,c=[],l=!1,f=-1;function h(){l&&s&&(l=!1,s.length?c=s.concat(c):f=-1,c.length&&d())}function d(){if(!l){var t=u(h);l=!0;for(var e=c.length;e;){for(s=c,c=[];++f1)for(var n=1;n1&&"boolean"!==typeof e)throw new o('"allowMissing" argument must be a boolean');var n=S(t),i=n.length>0?n[0]:"",a=x("%"+i+"%",e),s=a.name,c=a.value,l=!1,f=a.alias;f&&(i=f[0],b(n,g([0,1],f)));for(var h=1,d=!0;h=n.length){var E=u(c,v);c=(d=!!E)&&"get"in E&&!("originalValue"in E.get)?E.get:c[v]}else d=y(c,v),c=c[v];d&&!l&&(p[s]=c)}}return c}},function(t,e,n){"use strict";var r=n(321);t.exports=Function.prototype.bind||r},function(t,e,n){"use strict";var r=String.prototype.replace,i=/%20/g,o="RFC1738",a="RFC3986";t.exports={default:a,formatters:{RFC1738:function(t){return r.call(t,i,"+")},RFC3986:function(t){return String(t)}},RFC1738:o,RFC3986:a}},function(t,e,n){var r=n(344),i=n(183),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,u=a?function(t){return null==t?[]:(t=Object(t),r(a(t),(function(e){return o.call(t,e)})))}:i;t.exports=u},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i,o=n(91),a=n(143),u=n(184),s=n(185),c=((r={})["no-app"]="No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()",r["bad-app-name"]="Illegal App name: '{$appName}",r["duplicate-app"]="Firebase App named '{$appName}' already exists",r["app-deleted"]="Firebase App named '{$appName}' already deleted",r["invalid-app-argument"]="firebase.{$appName}() takes either no argument or a Firebase App instance.",r["invalid-log-argument"]="First argument to `onLog` must be null or a function.",r),l=new a.ErrorFactory("app","Firebase",c),f=((i={})["@firebase/app"]="fire-core",i["@firebase/analytics"]="fire-analytics",i["@firebase/auth"]="fire-auth",i["@firebase/database"]="fire-rtdb",i["@firebase/functions"]="fire-fn",i["@firebase/installations"]="fire-iid",i["@firebase/messaging"]="fire-fcm",i["@firebase/performance"]="fire-perf",i["@firebase/remote-config"]="fire-rc",i["@firebase/storage"]="fire-gcs",i["@firebase/firestore"]="fire-fst",i["fire-js"]="fire-js",i["firebase-wrapper"]="fire-js-all",i),h=new s.Logger("@firebase/app"),d=function(){function t(t,e,n){var r,i,s=this;this.firebase_=n,this.isDeleted_=!1,this.name_=e.name,this.automaticDataCollectionEnabled_=e.automaticDataCollectionEnabled||!1,this.options_=a.deepCopy(t),this.container=new u.ComponentContainer(e.name),this._addComponent(new u.Component("app",(function(){return s}),"PUBLIC"));try{for(var c=o.__values(this.firebase_.INTERNAL.components.values()),l=c.next();!l.done;l=c.next()){var f=l.value;this._addComponent(f)}}catch(h){r={error:h}}finally{try{l&&!l.done&&(i=c.return)&&i.call(c)}finally{if(r)throw r.error}}}return Object.defineProperty(t.prototype,"automaticDataCollectionEnabled",{get:function(){return this.checkDestroyed_(),this.automaticDataCollectionEnabled_},set:function(t){this.checkDestroyed_(),this.automaticDataCollectionEnabled_=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this.checkDestroyed_(),this.name_},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"options",{get:function(){return this.checkDestroyed_(),this.options_},enumerable:!1,configurable:!0}),t.prototype.delete=function(){var t=this;return new Promise((function(e){t.checkDestroyed_(),e()})).then((function(){return t.firebase_.INTERNAL.removeApp(t.name_),Promise.all(t.container.getProviders().map((function(t){return t.delete()})))})).then((function(){t.isDeleted_=!0}))},t.prototype._getService=function(t,e){return void 0===e&&(e="[DEFAULT]"),this.checkDestroyed_(),this.container.getProvider(t).getImmediate({identifier:e})},t.prototype._removeServiceInstance=function(t,e){void 0===e&&(e="[DEFAULT]"),this.container.getProvider(t).clearInstance(e)},t.prototype._addComponent=function(t){try{this.container.addComponent(t)}catch(e){h.debug("Component "+t.name+" failed to register with FirebaseApp "+this.name,e)}},t.prototype._addOrOverwriteComponent=function(t){this.container.addOrOverwriteComponent(t)},t.prototype.checkDestroyed_=function(){if(this.isDeleted_)throw l.create("app-deleted",{appName:this.name_})},t}();d.prototype.name&&d.prototype.options||d.prototype.delete||console.log("dc");var p=function t(){var e=function(t){var e={},n=new Map,r={__esModule:!0,initializeApp:function(n,i){void 0===i&&(i={});if("object"!==typeof i||null===i){i={name:i}}var o=i;void 0===o.name&&(o.name="[DEFAULT]");var u=o.name;if("string"!==typeof u||!u)throw l.create("bad-app-name",{appName:String(u)});if(a.contains(e,u))throw l.create("duplicate-app",{appName:u});var s=new t(n,o,r);return e[u]=s,s},app:i,registerVersion:function(t,e,n){var r,i=null!==(r=f[t])&&void 0!==r?r:t;n&&(i+="-"+n);var o=i.match(/\s|\//),a=e.match(/\s|\//);if(o||a){var s=['Unable to register library "'+i+'" with version "'+e+'":'];return o&&s.push('library name "'+i+'" contains illegal characters (whitespace or "/")'),o&&a&&s.push("and"),a&&s.push('version name "'+e+'" contains illegal characters (whitespace or "/")'),void h.warn(s.join(" "))}c(new u.Component(i+"-version",(function(){return{library:i,version:e}}),"VERSION"))},setLogLevel:s.setLogLevel,onLog:function(t,e){if(null!==t&&"function"!==typeof t)throw l.create("invalid-log-argument",{appName:name});s.setUserLogHandler(t,e)},apps:null,SDK_VERSION:"7.20.0",INTERNAL:{registerComponent:c,removeApp:function(t){delete e[t]},components:n,useAsService:function(t,e){if("serverAuth"===e)return null;return e}}};function i(t){if(t=t||"[DEFAULT]",!a.contains(e,t))throw l.create("no-app",{appName:t});return e[t]}function c(u){var s,c,f=u.name;if(n.has(f))return h.debug("There were multiple attempts to register component "+f+"."),"PUBLIC"===u.type?r[f]:null;if(n.set(f,u),"PUBLIC"===u.type){var d=function(t){if(void 0===t&&(t=i()),"function"!==typeof t[f])throw l.create("invalid-app-argument",{appName:f});return t[f]()};void 0!==u.serviceProps&&a.deepExtend(d,u.serviceProps),r[f]=d,t.prototype[f]=function(){for(var t=[],e=0;e=0&&h.warn("\n Warning: You are trying to load Firebase while using Firebase Performance standalone script.\n You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.\n ")}var y=p.initializeApp;p.initializeApp=function(){for(var t=[],e=0;e>6|192,e[n++]=63&i|128):55296===(64512&i)&&r+1>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=63&i|128):(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=63&i|128)}return e},s={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"===typeof atob,encodeByteArray:function(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();for(var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[],i=0;i>2,f=(3&o)<<4|u>>4,h=(15&u)<<2|c>>6,d=63&c;s||(d=64,a||(h=64)),r.push(n[l],n[f],n[h],n[d])}return r.join("")},encodeString:function(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(u(t),e)},decodeString:function(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){for(var e=[],n=0,r=0;n191&&i<224){var o=t[n++];e[r++]=String.fromCharCode((31&i)<<6|63&o)}else if(i>239&&i<365){var a=((7&i)<<18|(63&(o=t[n++]))<<12|(63&(u=t[n++]))<<6|63&t[n++])-65536;e[r++]=String.fromCharCode(55296+(a>>10)),e[r++]=String.fromCharCode(56320+(1023&a))}else{o=t[n++];var u=t[n++];e[r++]=String.fromCharCode((15&i)<<12|(63&o)<<6|63&u)}}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray:function(t,e){this.init_();for(var n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[],i=0;i>4;if(r.push(c),64!==u){var l=a<<4&240|u>>2;if(r.push(l),64!==s){var f=u<<6&192|s;r.push(f)}}}return r},init_:function(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(var t=0;t=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}},c=function(t){try{return s.decodeString(t,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function l(t,e){if(!(e instanceof Object))return e;switch(e.constructor){case Date:return new Date(e.getTime());case Object:void 0===t&&(t={});break;case Array:t=[];break;default:return e}for(var n in e)e.hasOwnProperty(n)&&(t[n]=l(t[n],e[n]));return t}var f=function(){function t(){var t=this;this.reject=function(){},this.resolve=function(){},this.promise=new Promise((function(e,n){t.resolve=e,t.reject=n}))}return t.prototype.wrapCallback=function(t){var e=this;return function(n,r){n?e.reject(n):e.resolve(r),"function"===typeof t&&(e.promise.catch((function(){})),1===t.length?t(n):t(n,r))}},t}();function h(){return"undefined"!==typeof navigator&&"string"===typeof navigator.userAgent?navigator.userAgent:""}function d(){try{return"[object process]"===Object.prototype.toString.call(t.process)}catch(e){return!1}}var p=function(t){function e(n,r){var i=t.call(this,r)||this;return i.code=n,i.name="FirebaseError",Object.setPrototypeOf(i,e.prototype),Error.captureStackTrace&&Error.captureStackTrace(i,v.prototype.create),i}return r.__extends(e,t),e}(Error),v=function(){function t(t,e,n){this.service=t,this.serviceName=e,this.errors=n}return t.prototype.create=function(t){for(var e=[],n=1;n"}))}var y=/\{\$([^}]+)}/g;function g(t){return JSON.parse(t)}var b=function(t){var e={},n={},r={},i="";try{var o=t.split(".");e=g(c(o[0])||""),n=g(c(o[1])||""),i=o[2],r=n.d||{},delete n.d}catch(a){}return{header:e,claims:n,data:r,signature:i}};var w=function(){function t(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(var t=1;t>>31)}var o,a,u=this.chain_[0],s=this.chain_[1],c=this.chain_[2],l=this.chain_[3],f=this.chain_[4];for(r=0;r<80;r++){r<40?r<20?(o=l^s&(c^l),a=1518500249):(o=s^c^l,a=1859775393):r<60?(o=s&c|l&(s|c),a=2400959708):(o=s^c^l,a=3395469782);i=(u<<5|u>>>27)+o+f+a+n[r]&4294967295;f=l,l=c,c=4294967295&(s<<30|s>>>2),s=u,u=i}this.chain_[0]=this.chain_[0]+u&4294967295,this.chain_[1]=this.chain_[1]+s&4294967295,this.chain_[2]=this.chain_[2]+c&4294967295,this.chain_[3]=this.chain_[3]+l&4294967295,this.chain_[4]=this.chain_[4]+f&4294967295},t.prototype.update=function(t,e){if(null!=t){void 0===e&&(e=t.length);for(var n=e-this.blockSize,r=0,i=this.buf_,o=this.inbuf_;r=56;n--)this.buf_[n]=255&e,e/=256;this.compress_(this.buf_);var r=0;for(n=0;n<5;n++)for(var i=24;i>=0;i-=8)t[r]=this.chain_[n]>>i&255,++r;return t},t}();var _=function(){function t(t,e){var n=this;this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=e,this.task.then((function(){t(n)})).catch((function(t){n.error(t)}))}return t.prototype.next=function(t){this.forEachObserver((function(e){e.next(t)}))},t.prototype.error=function(t){this.forEachObserver((function(e){e.error(t)})),this.close(t)},t.prototype.complete=function(){this.forEachObserver((function(t){t.complete()})),this.close()},t.prototype.subscribe=function(t,e,n){var r,i=this;if(void 0===t&&void 0===e&&void 0===n)throw new Error("Missing Observer.");void 0===(r=function(t,e){if("object"!==typeof t||null===t)return!1;for(var n=0,r=e;n 4. Need to update it?")}var i=t+" failed: ";return i+=r+" argument "}e.CONSTANTS=i,e.Deferred=f,e.ErrorFactory=v,e.FirebaseError=p,e.MAX_VALUE_MILLIS=144e5,e.RANDOM_FACTOR=.5,e.Sha1=w,e.areCookiesEnabled=function(){return!(!navigator||!navigator.cookieEnabled)},e.assert=o,e.assertionError=a,e.async=function(t,e){return function(){for(var n=[],r=0;r=0},e.isEmpty=function(t){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0},e.isIE=function(){var t=h();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0},e.isIndexedDBAvailable=function(){return"indexedDB"in self&&null!=indexedDB},e.isMobileCordova=function(){return"undefined"!==typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(h())},e.isNode=d,e.isNodeSdk=function(){return!0===i.NODE_CLIENT||!0===i.NODE_ADMIN},e.isReactNative=function(){return"object"===typeof navigator&&"ReactNative"===navigator.product},e.isSafari=function(){return!d()&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")},e.isUWP=function(){return h().indexOf("MSAppHost/")>=0},e.isValidFormat=function(t){var e=b(t).claims;return!!e&&"object"===typeof e&&e.hasOwnProperty("iat")},e.isValidTimestamp=function(t){var e=b(t).claims,n=Math.floor((new Date).getTime()/1e3),r=0,i=0;return"object"===typeof e&&(e.hasOwnProperty("nbf")?r=e.nbf:e.hasOwnProperty("iat")&&(r=e.iat),i=e.hasOwnProperty("exp")?e.exp:r+86400),!!n&&!!r&&!!i&&n>=r&&n<=i},e.issuedAtTime=function(t){var e=b(t).claims;return"object"===typeof e&&e.hasOwnProperty("iat")?e.iat:null},e.jsonEval=g,e.map=function(t,e,n){var r={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=e.call(n,t[i],i,t));return r},e.querystring=function(t){for(var e=[],n=function(t,n){Array.isArray(n)?n.forEach((function(n){e.push(encodeURIComponent(t)+"="+encodeURIComponent(n))})):e.push(encodeURIComponent(t)+"="+encodeURIComponent(n))},r=0,i=Object.entries(t);r=55296&&r<=56319?(e+=4,n++):e+=3}return e},e.stringToByteArray=function(t){for(var e=[],n=0,r=0;r=55296&&i<=56319){var a=i-55296;r++,o(r>6|192,e[n++]=63&i|128):i<65536?(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=63&i|128):(e[n++]=i>>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=63&i|128)}return e},e.stringify=function(t){return JSON.stringify(t)},e.validateArgCount=function(t,e,n,r){var i;if(rn&&(i=0===n?"none":"no more than "+n),i)throw new Error(t+" failed: Was called with "+r+(1===r?" argument.":" arguments.")+" Expects "+i+".")},e.validateCallback=function(t,e,n,r){if((!r||n)&&"function"!==typeof n)throw new Error(O(t,e,r)+"must be a valid function.")},e.validateContextObject=function(t,e,n,r){if((!r||n)&&("object"!==typeof n||null===n))throw new Error(O(t,e,r)+"must be a valid context object.")},e.validateIndexedDBOpenable=function(){return new Promise((function(t,e){try{var n=!0,r="validate-browser-context-for-indexeddb-analytics-module",i=window.indexedDB.open(r);i.onsuccess=function(){i.result.close(),n||window.indexedDB.deleteDatabase(r),t(!0)},i.onupgradeneeded=function(){n=!1},i.onerror=function(){var t;e((null===(t=i.error)||void 0===t?void 0:t.message)||"")}}catch(o){e(o)}}))},e.validateNamespace=function(t,e,n,r){if((!r||n)&&"string"!==typeof n)throw new Error(O(t,e,r)+"must be a valid firebase namespace.")}}).call(this,n(57))},function(t,e,n){"use strict";var r=n(21);Object.defineProperty(e,"__esModule",{value:!0}),e.syncChannel=u;var i=r(n(44)),o=n(2),a=i.default.mark(u);function u(t,e){var n,r,u,s,c;return i.default.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:n=e.successActionCreator,r=e.failureActionCreator,u=e.transform,i.prev=1;case 2:return i.next=5,(0,o.take)(t);case 5:return s=i.sent,c=u?u(s):s,i.next=9,(0,o.put)(n(c));case 9:i.next=2;break;case 11:i.next=21;break;case 13:if(i.prev=13,i.t0=i.catch(1),!r){i.next=20;break}return i.next=18,(0,o.put)(r(i.t0));case 18:i.next=21;break;case 20:console.error("The following error has been ignored because no `failureActionCreator` has been set:",i.t0);case 21:return i.prev=21,i.next=24,(0,o.cancelled)();case 24:if(!i.sent){i.next=26;break}t.close();case 26:return i.finish(21);case 27:case"end":return i.stop()}}),a,this,[[1,13,21,27]])}},function(t,e,n){var r=n(169),i=n(376),o=n(137);t.exports=function(t){return o(t)?r(t,!0):i(t)}},function(t,e,n){var r=n(172)(Object.getPrototypeOf,Object);t.exports=r},function(t,e,n){var r=n(180);t.exports=function(t){var e=new t.constructor(t.byteLength);return new r(e).set(new r(t)),e}},function(t,e,n){"use strict";var r=n(317),i=n(327),o=n(140);t.exports={formats:o,parse:i,stringify:r}},,,,,function(t,e,n){var r=n(402);t.exports=d,t.exports.parse=o,t.exports.compile=function(t,e){return u(o(t,e),e)},t.exports.tokensToFunction=u,t.exports.tokensToRegExp=h;var i=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(t,e){for(var n,r=[],o=0,a=0,u="",l=e&&e.delimiter||"/";null!=(n=i.exec(t));){var f=n[0],h=n[1],d=n.index;if(u+=t.slice(a,d),a=d+f.length,h)u+=h[1];else{var p=t[a],v=n[2],m=n[3],y=n[4],g=n[5],b=n[6],w=n[7];u&&(r.push(u),u="");var _=null!=v&&null!=p&&p!==v,E="+"===b||"*"===b,O="?"===b||"*"===b,S=n[2]||l,x=y||g;r.push({name:m||o++,prefix:v||"",delimiter:S,optional:O,repeat:E,partial:_,asterisk:!!w,pattern:x?c(x):w?".*":"[^"+s(S)+"]+?"})}}return a0&&o(l)?n>1?t(l,n-1,o,a,u):r(u,l):a||(u[u.length]=l)}return u}},function(t,e,n){var r=n(288),i=n(50),o=Object.prototype,a=o.hasOwnProperty,u=o.propertyIsEnumerable,s=r(function(){return arguments}())?r:function(t){return i(t)&&a.call(t,"callee")&&!u.call(t,"callee")};t.exports=s},function(t,e,n){var r=n(289),i=Math.max;t.exports=function(t,e,n){return e=i(void 0===e?t.length-1:e,0),function(){for(var o=arguments,a=-1,u=i(o.length-e,0),s=Array(u);++a-1&&t%1==0&&t<=9007199254740991}},function(t,e){t.exports=function(t,e){return function(n){return t(e(n))}}},function(t,e,n){var r=n(130),i=n(303),o=n(304);function a(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new r;++e1;){var e=t.pop(),n=e.obj[e.prop];if(o(n)){for(var r=[],i=0;i=48&&l<=57||l>=65&&l<=90||l>=97&&l<=122||o===r.RFC1738&&(40===l||41===l)?s+=u.charAt(c):l<128?s+=a[l]:l<2048?s+=a[192|l>>6]+a[128|63&l]:l<55296||l>=57344?s+=a[224|l>>12]+a[128|l>>6&63]+a[128|63&l]:(c+=1,l=65536+((1023&l)<<10|1023&u.charCodeAt(c)),s+=a[240|l>>18]+a[128|l>>12&63]+a[128|l>>6&63]+a[128|63&l])}return s},isBuffer:function(t){return!(!t||"object"!==typeof t)&&!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))},isRegExp:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},maybeMap:function(t,e){if(o(t)){for(var n=[],r=0;rl))return!1;var h=s.get(t),d=s.get(e);if(h&&d)return h==e&&d==t;var p=-1,v=!0,m=2&n?new r:void 0;for(s.set(t,e),s.set(e,t);++p=(null!==r&&void 0!==r?r:e.logLevel)&&t({level:o[n].toLowerCase(),message:u,args:i,type:e.name})}},r=0,i=a;r1&&void 0!==arguments[1]?arguments[1]:1,n=w+=1;function r(e){if(0===e)E(n),t();else{var i=g((function(){r(e-1)}));_.set(n,i)}}return r(e),n}function S(t,e){return!!t&&t.contains(e)}O.cancel=function(t){var e=_.get(t);return E(e),b(e)};var x=n(27);function k(t,e){"function"===typeof t?t(e):"object"===Object(s.a)(t)&&t&&"current"in t&&(t.current=e)}function T(){for(var t=arguments.length,e=new Array(t),n=0;n=0&&n.left>=0&&n.bottom>n.top&&n.right>n.left?n:null}function At(t){var e,n,r;if(St.isWindow(t)||9===t.nodeType){var i=St.getWindow(t);e={left:St.getWindowScrollLeft(i),top:St.getWindowScrollTop(i)},n=St.viewportWidth(i),r=St.viewportHeight(i)}else e=St.offset(t),n=St.outerWidth(t),r=St.outerHeight(t);return e.width=n,e.height=r,e}function Ct(t,e){var n=e.charAt(0),r=e.charAt(1),i=t.width,o=t.height,a=t.left,u=t.top;return"c"===n?u+=o/2:"b"===n&&(u+=o),"c"===r?a+=i/2:"r"===r&&(a+=i),{left:a,top:u}}function Pt(t,e,n,r,i){var o=Ct(e,n[1]),a=Ct(t,n[0]),u=[a.left-o.left,a.top-o.top];return{left:Math.round(t.left-u[0]+r[0]-i[0]),top:Math.round(t.top-u[1]+r[1]-i[1])}}function Nt(t,e,n){return t.leftn.right}function jt(t,e,n){return t.topn.bottom}function Rt(t,e,n){var r=[];return St.each(t,(function(t){r.push(t.replace(e,(function(t){return n[t]})))})),r}function Dt(t,e){return t[e]=-t[e],t}function Mt(t,e){return(/%$/.test(t)?parseInt(t.substring(0,t.length-1),10)/100*e:parseInt(t,10))||0}function Lt(t,e){t[0]=Mt(t[0],e.width),t[1]=Mt(t[1],e.height)}function Ft(t,e,n,r){var i=n.points,o=n.offset||[0,0],a=n.targetOffset||[0,0],u=n.overflow,s=n.source||t;o=[].concat(o),a=[].concat(a);var c={},l=0,f=It(s,!(!(u=u||{})||!u.alwaysByViewport)),h=At(s);Lt(o,h),Lt(a,e);var d=Pt(h,e,i,o,a),p=St.merge(h,d);if(f&&(u.adjustX||u.adjustY)&&r){if(u.adjustX&&Nt(d,h,f)){var v=Rt(i,/[lr]/gi,{l:"r",r:"l"}),m=Dt(o,0),y=Dt(a,0);(function(t,e,n){return t.left>n.right||t.left+e.widthn.bottom||t.top+e.height=n.left&&i.left+o.width>n.right&&(o.width-=i.left+o.width-n.right),r.adjustX&&i.left+o.width>n.right&&(i.left=Math.max(n.right-o.width,n.left)),r.adjustY&&i.top=n.top&&i.top+o.height>n.bottom&&(o.height-=i.top+o.height-n.bottom),r.adjustY&&i.top+o.height>n.bottom&&(i.top=Math.max(n.bottom-o.height,n.top)),St.mix(i,o)}(d,h,f,c))}return p.width!==h.width&&St.css(s,"width",St.width(s)+p.width-h.width),p.height!==h.height&&St.css(s,"height",St.height(s)+p.height-h.height),St.offset(s,{left:p.left,top:p.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:i,offset:o,targetOffset:a,overflow:c}}function Ut(t,e,n){var r=n.target||e;return Ft(t,At(r),n,!function(t,e){var n=It(t,e),r=At(t);return!n||r.left+r.width<=n.left||r.top+r.height<=n.top||r.left>=n.right||r.top>=n.bottom}(r,n.overflow&&n.overflow.alwaysByViewport))}Ut.__getOffsetParent=kt,Ut.__getVisibleRectForElement=It;var Vt=n(209),Bt=n.n(Vt),zt=n(117);function Ht(t,e){var n=null,r=null;var o=new zt.a((function(t){var o=Object(i.a)(t,1)[0].target;if(document.documentElement.contains(o)){var a=o.getBoundingClientRect(),u=a.width,s=a.height,c=Math.floor(u),l=Math.floor(s);n===c&&r===l||Promise.resolve().then((function(){e({width:c,height:l})})),n=c,r=l}}));return t&&o.observe(t),function(){o.disconnect()}}function qt(t){return"function"!==typeof t?null:t()}function Wt(t){return"object"===Object(s.a)(t)&&t?t:null}var Gt=function(t,e){var n=t.children,r=t.disabled,o=t.target,a=t.align,s=t.onAlign,c=t.monitorWindowResize,l=t.monitorBufferTime,f=void 0===l?0:l,h=u.a.useRef({}),d=u.a.useRef(),p=u.a.Children.only(n),v=u.a.useRef({});v.current.disabled=r,v.current.target=o,v.current.align=a,v.current.onAlign=s;var m=function(t,e){var n=u.a.useRef(!1),r=u.a.useRef(null);function i(){window.clearTimeout(r.current)}return[function o(a){if(i(),n.current&&!0!==a)r.current=window.setTimeout((function(){n.current=!1,o()}),e);else{if(!1===t())return;n.current=!0,r.current=window.setTimeout((function(){n.current=!1}),e)}},function(){n.current=!1,i()}]}((function(){var t=v.current,e=t.disabled,n=t.target,r=t.align,i=t.onAlign;if(!e&&n){var o,a=d.current,u=qt(n),s=Wt(n);h.current.element=u,h.current.point=s,h.current.align=r;var c=document.activeElement;return u&&function(t){if(!t)return!1;if(t.offsetParent)return!0;if(t.getBBox){var e=t.getBBox();if(e.width||e.height)return!0}if(t.getBoundingClientRect){var n=t.getBoundingClientRect();if(n.width||n.height)return!0}return!1}(u)?o=Ut(a,u,r):s&&(o=function(t,e,n){var r,i,o=St.getDocument(t),a=o.defaultView||o.parentWindow,u=St.getWindowScrollLeft(a),s=St.getWindowScrollTop(a),c=St.viewportWidth(a),l=St.viewportHeight(a),f={left:r="pageX"in e?e.pageX:u+e.clientX,top:i="pageY"in e?e.pageY:s+e.clientY,width:0,height:0},h=r>=0&&r<=u+c&&i>=0&&i<=s+l,d=[n.points[0],"cc"];return Ft(t,f,B(B({},n),{},{points:d}),h)}(a,s,r)),function(t,e){var n,r;t!==document.activeElement&&(r=t,(n=e)&&n.contains(r))&&"function"===typeof t.focus&&t.focus()}(c,a),i&&o&&i(a,o),!0}return!1}),f),g=Object(i.a)(m,2),b=g[0],w=g[1],_=u.a.useRef({cancel:function(){}}),E=u.a.useRef({cancel:function(){}});u.a.useEffect((function(){var t,e,n=qt(o),r=Wt(o);d.current!==E.current.element&&(E.current.cancel(),E.current.element=d.current,E.current.cancel=Ht(d.current,b)),h.current.element===n&&((t=h.current.point)===(e=r)||t&&e&&("pageX"in e&&"pageY"in e?t.pageX===e.pageX&&t.pageY===e.pageY:"clientX"in e&&"clientY"in e&&t.clientX===e.clientX&&t.clientY===e.clientY))&&Bt()(h.current.align,a)||(b(),_.current.element!==n&&(_.current.cancel(),_.current.element=n,_.current.cancel=Ht(n,b)))})),u.a.useEffect((function(){r?w():b()}),[r]);var O=u.a.useRef(null);return u.a.useEffect((function(){c?O.current||(O.current=function(t,e,n,r){var i=y.a.unstable_batchedUpdates?function(t){y.a.unstable_batchedUpdates(n,t)}:n;return t.addEventListener&&t.addEventListener(e,i,r),{remove:function(){t.removeEventListener&&t.removeEventListener(e,i,r)}}}(window,"resize",b)):O.current&&(O.current.remove(),O.current=null)}),[c]),u.a.useEffect((function(){return function(){_.current.cancel(),E.current.cancel(),O.current&&O.current.remove(),w()}}),[]),u.a.useImperativeHandle(e,(function(){return{forceAlign:function(){return b(!0)}}})),u.a.isValidElement(p)&&(p=u.a.cloneElement(p,{ref:F(p.ref,d)})),p},Yt=u.a.forwardRef(Gt);Yt.displayName="Align";var $t=Yt,Kt=A()?a.useLayoutEffect:a.useEffect,Xt=n(29),Qt=n(48);var Jt=["measure","alignPre","align",null,"motion"],Zt=function(t,e){var n=function(t){var e=a.useRef(!1),n=a.useState(t),r=Object(i.a)(n,2),o=r[0],u=r[1];return a.useEffect((function(){return e.current=!1,function(){e.current=!0}}),[]),[o,function(t,n){n&&e.current||u(t)}]}(null),r=Object(i.a)(n,2),o=r[0],u=r[1],s=Object(a.useRef)();function c(t){u(t,!0)}function l(){O.cancel(s.current)}return Object(a.useEffect)((function(){c("measure")}),[t]),Object(a.useEffect)((function(){switch(o){case"measure":e()}o&&(s.current=O(Object(Qt.a)(Object(Xt.a)().mark((function t(){var e,n;return Object(Xt.a)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=Jt.indexOf(o),(n=Jt[e+1])&&-1!==e&&c(n);case 3:case"end":return t.stop()}}),t)})))))}),[o]),Object(a.useEffect)((function(){return function(){l()}}),[]),[o,function(t){l(),s.current=O((function(){c((function(t){switch(o){case"align":return"motion";case"motion":return"stable"}return t})),null===t||void 0===t||t()}))}]},te=a.forwardRef((function(t,e){var n=t.visible,r=t.prefixCls,u=t.className,s=t.style,l=t.children,f=t.zIndex,h=t.stretch,d=t.destroyPopupOnHide,p=t.forceRender,v=t.align,m=t.point,y=t.getRootDomNode,g=t.getClassNameFromAlign,b=t.onAlign,w=t.onMouseEnter,_=t.onMouseLeave,E=t.onMouseDown,O=t.onTouchStart,S=t.onClick,x=Object(a.useRef)(),k=Object(a.useRef)(),T=Object(a.useState)(),I=Object(i.a)(T,2),A=I[0],C=I[1],P=function(t){var e=a.useState({width:0,height:0}),n=Object(i.a)(e,2),r=n[0],o=n[1];return[a.useMemo((function(){var e={};if(t){var n=r.width,i=r.height;-1!==t.indexOf("height")&&i?e.height=i:-1!==t.indexOf("minHeight")&&i&&(e.minHeight=i),-1!==t.indexOf("width")&&n?e.width=n:-1!==t.indexOf("minWidth")&&n&&(e.minWidth=n)}return e}),[t,r]),function(t){o({width:t.offsetWidth,height:t.offsetHeight})}]}(h),j=Object(i.a)(P,2),M=j[0],L=j[1];var F=Zt(n,(function(){h&&L(y())})),U=Object(i.a)(F,2),V=U[0],B=U[1],z=Object(a.useState)(0),H=Object(i.a)(z,2),q=H[0],W=H[1],G=Object(a.useRef)();function Y(){var t;null===(t=x.current)||void 0===t||t.forceAlign()}function $(t,e){var n=g(e);A!==n&&C(n),W((function(t){return t+1})),"align"===V&&(null===b||void 0===b||b(t,e))}Kt((function(){"alignPre"===V&&W(0)}),[V]),Kt((function(){"align"===V&&(q<2?Y():B((function(){var t;null===(t=G.current)||void 0===t||t.call(G)})))}),[q]);var K=Object(c.a)({},D(t));function X(){return new Promise((function(t){G.current=t}))}["onAppearEnd","onEnterEnd","onLeaveEnd"].forEach((function(t){var e=K[t];K[t]=function(t,n){return B(),null===e||void 0===e?void 0:e(t,n)}})),a.useEffect((function(){K.motionName||"motion"!==V||B()}),[K.motionName,V]),a.useImperativeHandle(e,(function(){return{forceAlign:Y,getElement:function(){return k.current}}}));var Q=Object(c.a)(Object(c.a)({},M),{},{zIndex:f,opacity:"motion"!==V&&"stable"!==V&&n?0:void 0,pointerEvents:n||"stable"===V?void 0:"none"},s),J=!0;!(null===v||void 0===v?void 0:v.points)||"align"!==V&&"stable"!==V||(J=!1);var Z=l;return a.Children.count(l)>1&&(Z=a.createElement("div",{className:"".concat(r,"-content")},l)),a.createElement(R.b,Object(o.a)({visible:n,ref:k,leavedClassName:"".concat(r,"-hidden")},K,{onAppearPrepare:X,onEnterPrepare:X,removeOnLeave:d,forceRender:p}),(function(t,e){var n=t.className,i=t.style,o=N()(r,u,A,n);return a.createElement($t,{target:m||y,key:"popup",ref:x,monitorWindowResize:!0,disabled:J,align:v,onAlign:$},a.createElement("div",{ref:e,className:o,onMouseEnter:w,onMouseLeave:_,onMouseDownCapture:E,onTouchStartCapture:O,onClick:S,style:Object(c.a)(Object(c.a)({},i),Q)},Z))}))}));te.displayName="PopupInner";var ee=te,ne=a.forwardRef((function(t,e){var n=t.prefixCls,r=t.visible,i=t.zIndex,u=t.children,s=t.mobile,l=(s=void 0===s?{}:s).popupClassName,f=s.popupStyle,h=s.popupMotion,d=void 0===h?{}:h,p=s.popupRender,v=t.onClick,m=a.useRef();a.useImperativeHandle(e,(function(){return{forceAlign:function(){},getElement:function(){return m.current}}}));var y=Object(c.a)({zIndex:i},f),g=u;return a.Children.count(u)>1&&(g=a.createElement("div",{className:"".concat(n,"-content")},u)),p&&(g=p(g)),a.createElement(R.b,Object(o.a)({visible:r,ref:m,removeOnLeave:!0},d),(function(t,e){var r=t.className,i=t.style,o=N()(n,l,r);return a.createElement("div",{ref:e,className:o,onClick:v,style:Object(c.a)(Object(c.a)({},i),y)},g)}))}));ne.displayName="MobilePopupInner";var re=ne,ie=["visible","mobile"],oe=a.forwardRef((function(t,e){var n=t.visible,r=t.mobile,u=Object(l.a)(t,ie),s=Object(a.useState)(n),f=Object(i.a)(s,2),h=f[0],d=f[1],p=Object(a.useState)(!1),v=Object(i.a)(p,2),m=v[0],y=v[1],g=Object(c.a)(Object(c.a)({},u),{},{visible:h});Object(a.useEffect)((function(){d(n),n&&r&&y(function(){if("undefined"===typeof navigator||"undefined"===typeof window)return!1;var t=navigator.userAgent||navigator.vendor||window.opera;return!(!/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(t)&&!/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(null===t||void 0===t?void 0:t.substr(0,4)))}())}),[n,r]);var b=m?a.createElement(re,Object(o.a)({},g,{mobile:r,ref:e})):a.createElement(ee,Object(o.a)({},g,{ref:e}));return a.createElement("div",null,a.createElement(M,g),b)}));oe.displayName="Popup";var ae=oe,ue=a.createContext(null);function se(){}function ce(){return""}function le(t){return t?t.ownerDocument:window.document}var fe=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"];var he=function(t){var e=function(e){Object(p.a)(r,e);var n=Object(v.a)(r);function r(t){var e,i;return Object(f.a)(this,r),(e=n.call(this,t)).popupRef=a.createRef(),e.triggerRef=a.createRef(),e.portalContainer=void 0,e.attachId=void 0,e.clickOutsideHandler=void 0,e.touchOutsideHandler=void 0,e.contextMenuOutsideHandler1=void 0,e.contextMenuOutsideHandler2=void 0,e.mouseDownTimeout=void 0,e.focusTime=void 0,e.preClickTime=void 0,e.preTouchTime=void 0,e.delayTimer=void 0,e.hasPopupMouseDown=void 0,e.onMouseEnter=function(t){var n=e.props.mouseEnterDelay;e.fireEvents("onMouseEnter",t),e.delaySetPopupVisible(!0,n,n?null:t)},e.onMouseMove=function(t){e.fireEvents("onMouseMove",t),e.setPoint(t)},e.onMouseLeave=function(t){e.fireEvents("onMouseLeave",t),e.delaySetPopupVisible(!1,e.props.mouseLeaveDelay)},e.onPopupMouseEnter=function(){e.clearDelayTimer()},e.onPopupMouseLeave=function(t){var n;t.relatedTarget&&!t.relatedTarget.setTimeout&&S(null===(n=e.popupRef.current)||void 0===n?void 0:n.getElement(),t.relatedTarget)||e.delaySetPopupVisible(!1,e.props.mouseLeaveDelay)},e.onFocus=function(t){e.fireEvents("onFocus",t),e.clearDelayTimer(),e.isFocusToShow()&&(e.focusTime=Date.now(),e.delaySetPopupVisible(!0,e.props.focusDelay))},e.onMouseDown=function(t){e.fireEvents("onMouseDown",t),e.preClickTime=Date.now()},e.onTouchStart=function(t){e.fireEvents("onTouchStart",t),e.preTouchTime=Date.now()},e.onBlur=function(t){e.fireEvents("onBlur",t),e.clearDelayTimer(),e.isBlurToHide()&&e.delaySetPopupVisible(!1,e.props.blurDelay)},e.onContextMenu=function(t){t.preventDefault(),e.fireEvents("onContextMenu",t),e.setPopupVisible(!0,t)},e.onContextMenuClose=function(){e.isContextMenuToShow()&&e.close()},e.onClick=function(t){if(e.fireEvents("onClick",t),e.focusTime){var n;if(e.preClickTime&&e.preTouchTime?n=Math.min(e.preClickTime,e.preTouchTime):e.preClickTime?n=e.preClickTime:e.preTouchTime&&(n=e.preTouchTime),Math.abs(n-e.focusTime)<20)return;e.focusTime=0}e.preClickTime=0,e.preTouchTime=0,e.isClickToShow()&&(e.isClickToHide()||e.isBlurToHide())&&t&&t.preventDefault&&t.preventDefault();var r=!e.state.popupVisible;(e.isClickToHide()&&!r||r&&e.isClickToShow())&&e.setPopupVisible(!e.state.popupVisible,t)},e.onPopupMouseDown=function(){var t;(e.hasPopupMouseDown=!0,clearTimeout(e.mouseDownTimeout),e.mouseDownTimeout=window.setTimeout((function(){e.hasPopupMouseDown=!1}),0),e.context)&&(t=e.context).onPopupMouseDown.apply(t,arguments)},e.onDocumentClick=function(t){if(!e.props.mask||e.props.maskClosable){var n=t.target,r=e.getRootDomNode(),i=e.getPopupDomNode();S(r,n)&&!e.isContextMenuOnly()||S(i,n)||e.hasPopupMouseDown||e.close()}},e.getRootDomNode=function(){var t,n=e.props.getTriggerDOMNode;if(n)return n(e.triggerRef.current);try{var r=(t=e.triggerRef.current)instanceof HTMLElement?t:y.a.findDOMNode(t);if(r)return r}catch(i){}return y.a.findDOMNode(Object(d.a)(e))},e.getPopupClassNameFromAlign=function(t){var n=[],r=e.props,i=r.popupPlacement,o=r.builtinPlacements,a=r.prefixCls,u=r.alignPoint,s=r.getPopupClassNameFromAlign;return i&&o&&n.push(function(t,e,n,r){for(var i=n.points,o=Object.keys(t),a=0;a=0||r.indexOf("Bottom")>=0?o.top="".concat(i.height-e.offset[1],"px"):(r.indexOf("Top")>=0||r.indexOf("bottom")>=0)&&(o.top="".concat(-e.offset[1],"px")),r.indexOf("left")>=0||r.indexOf("Right")>=0?o.left="".concat(i.width-e.offset[0],"px"):(r.indexOf("right")>=0||r.indexOf("Left")>=0)&&(o.left="".concat(-e.offset[0],"px")),t.style.transformOrigin="".concat(o.left," ").concat(o.top)}},overlayInnerStyle:D,arrowContent:a.createElement("span",{className:"".concat(k,"-arrow-content"),style:A}),motion:{motionName:Object(Ie.a)(T,"zoom-big-fast",t.transitionName),motionDeadline:1e3}}),I?Object(Se.a)(C,{className:j}):C)}));Ne.displayName="Tooltip",Ne.defaultProps={placement:"top",mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0};e.a=Ne},function(t,e,n){"use strict";function r(t){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function i(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}function o(t){return(o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){return!e||"object"!==o(e)&&"function"!==typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function u(t){return function(){var e,n=r(t);if(i()){var o=r(this).constructor;e=Reflect.construct(n,arguments,o)}else e=n.apply(this,arguments);return a(this,e)}}n.d(e,"a",(function(){return u}))},function(t,e,n){"use strict";function r(t,e){return(r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function i(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&r(t,e)}n.d(e,"a",(function(){return i}))},function(t,e,n){"use strict";var r=n(3),i=n(0),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"},a=n(15),u=function(t,e){return i.createElement(a.a,Object(r.a)(Object(r.a)({},t),{},{ref:e,icon:o}))};u.displayName="CheckCircleOutlined";e.a=i.forwardRef(u)},function(t,e,n){"use strict";var r=n(3),i=n(0),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"}}]},name:"info-circle",theme:"outlined"},a=n(15),u=function(t,e){return i.createElement(a.a,Object(r.a)(Object(r.a)({},t),{},{ref:e,icon:o}))};u.displayName="InfoCircleOutlined";e.a=i.forwardRef(u)},function(t,e,n){"use strict";var r=n(3),i=n(0),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z"}},{tag:"path",attrs:{d:"M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"close-circle",theme:"outlined"},a=n(15),u=function(t,e){return i.createElement(a.a,Object(r.a)(Object(r.a)({},t),{},{ref:e,icon:o}))};u.displayName="CloseCircleOutlined";e.a=i.forwardRef(u)},function(t,e,n){"use strict";var r=n(3),i=n(0),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z"}}]},name:"exclamation-circle",theme:"outlined"},a=n(15),u=function(t,e){return i.createElement(a.a,Object(r.a)(Object(r.a)({},t),{},{ref:e,icon:o}))};u.displayName="ExclamationCircleOutlined";e.a=i.forwardRef(u)},function(t,e,n){"use strict";var r=n(3),i=n(0),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"}}]},name:"close",theme:"outlined"},a=n(15),u=function(t,e){return i.createElement(a.a,Object(r.a)(Object(r.a)({},t),{},{ref:e,icon:o}))};u.displayName="CloseOutlined";e.a=i.forwardRef(u)},function(t,e,n){"use strict";t.exports=n(251)},function(t,e,n){"use strict";e.a=function(t){function e(t,e,r){var i=e.trim().split(p);e=i;var o=i.length,a=t.length;switch(a){case 0:case 1:var u=0;for(t=0===a?"":t[0]+" ";ur&&(r=(e=e.trim()).charCodeAt(0)),r){case 38:return e.replace(v,"$1"+t.trim());case 58:return t.trim()+e.replace(v,"$1"+t.trim());default:if(0<1*n&&0s.charCodeAt(8))break;case 115:a=a.replace(s,"-webkit-"+s)+";"+a;break;case 207:case 102:a=a.replace(s,"-webkit-"+(102u.charCodeAt(0)&&(u=u.trim()),u=[u],0d)&&(U=(z=z.replace(" ",":")).length),01?e-1:0),r=1;r=o)return t;switch(t){case"%s":return String(n[i++]);case"%d":return Number(n[i++]);case"%j":try{return JSON.stringify(n[i++])}catch(e){return"[Circular]"}break;default:return t}}));return a}return t}function d(t,e){return void 0===t||null===t||(!("array"!==e||!Array.isArray(t)||t.length)||!(!function(t){return"string"===t||"url"===t||"hex"===t||"email"===t||"date"===t||"pattern"===t}(e)||"string"!==typeof t||t))}function p(t,e,n){var r=0,i=t.length;!function o(a){if(a&&a.length)n(a);else{var u=r;r+=1,u()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},_={integer:function(t){return _.number(t)&&parseInt(t,10)===t},float:function(t){return _.number(t)&&!_.integer(t)},array:function(t){return Array.isArray(t)},regexp:function(t){if(t instanceof RegExp)return!0;try{return!!new RegExp(t)}catch(e){return!1}},date:function(t){return"function"===typeof t.getTime&&"function"===typeof t.getMonth&&"function"===typeof t.getYear&&!isNaN(t.getTime())},number:function(t){return!isNaN(t)&&"number"===typeof t},object:function(t){return"object"===typeof t&&!_.array(t)},method:function(t){return"function"===typeof t},email:function(t){return"string"===typeof t&&t.length<=320&&!!t.match(w.email)},url:function(t){return"string"===typeof t&&t.length<=2048&&!!t.match(w.url)},hex:function(t){return"string"===typeof t&&!!t.match(w.hex)}},E={required:b,whitespace:function(t,e,n,r,i){(/^\s+$/.test(e)||""===e)&&r.push(h(i.messages.whitespace,t.fullField))},type:function(t,e,n,r,i){if(t.required&&void 0===e)b(t,e,n,r,i);else{var o=t.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(o)>-1?_[o](e)||r.push(h(i.messages.types[o],t.fullField,t.type)):o&&typeof e!==t.type&&r.push(h(i.messages.types[o],t.fullField,t.type))}},range:function(t,e,n,r,i){var o="number"===typeof t.len,a="number"===typeof t.min,u="number"===typeof t.max,s=e,c=null,l="number"===typeof e,f="string"===typeof e,d=Array.isArray(e);if(l?c="number":f?c="string":d&&(c="array"),!c)return!1;d&&(s=e.length),f&&(s=e.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),o?s!==t.len&&r.push(h(i.messages[c].len,t.fullField,t.len)):a&&!u&&st.max?r.push(h(i.messages[c].max,t.fullField,t.max)):a&&u&&(st.max)&&r.push(h(i.messages[c].range,t.fullField,t.min,t.max))},enum:function(t,e,n,r,i){t.enum=Array.isArray(t.enum)?t.enum:[],-1===t.enum.indexOf(e)&&r.push(h(i.messages.enum,t.fullField,t.enum.join(", ")))},pattern:function(t,e,n,r,i){if(t.pattern)if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(e)||r.push(h(i.messages.pattern.mismatch,t.fullField,e,t.pattern));else if("string"===typeof t.pattern){new RegExp(t.pattern).test(e)||r.push(h(i.messages.pattern.mismatch,t.fullField,e,t.pattern))}}},O=function(t,e,n,r,i){var o=t.type,a=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(d(e,o)&&!t.required)return n();E.required(t,e,r,a,i,o),d(e,o)||E.type(t,e,r,a,i)}n(a)},S={string:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(d(e,"string")&&!t.required)return n();E.required(t,e,r,o,i,"string"),d(e,"string")||(E.type(t,e,r,o,i),E.range(t,e,r,o,i),E.pattern(t,e,r,o,i),!0===t.whitespace&&E.whitespace(t,e,r,o,i))}n(o)},method:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(d(e)&&!t.required)return n();E.required(t,e,r,o,i),void 0!==e&&E.type(t,e,r,o,i)}n(o)},number:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(""===e&&(e=void 0),d(e)&&!t.required)return n();E.required(t,e,r,o,i),void 0!==e&&(E.type(t,e,r,o,i),E.range(t,e,r,o,i))}n(o)},boolean:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(d(e)&&!t.required)return n();E.required(t,e,r,o,i),void 0!==e&&E.type(t,e,r,o,i)}n(o)},regexp:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(d(e)&&!t.required)return n();E.required(t,e,r,o,i),d(e)||E.type(t,e,r,o,i)}n(o)},integer:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(d(e)&&!t.required)return n();E.required(t,e,r,o,i),void 0!==e&&(E.type(t,e,r,o,i),E.range(t,e,r,o,i))}n(o)},float:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(d(e)&&!t.required)return n();E.required(t,e,r,o,i),void 0!==e&&(E.type(t,e,r,o,i),E.range(t,e,r,o,i))}n(o)},array:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if((void 0===e||null===e)&&!t.required)return n();E.required(t,e,r,o,i,"array"),void 0!==e&&null!==e&&(E.type(t,e,r,o,i),E.range(t,e,r,o,i))}n(o)},object:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(d(e)&&!t.required)return n();E.required(t,e,r,o,i),void 0!==e&&E.type(t,e,r,o,i)}n(o)},enum:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(d(e)&&!t.required)return n();E.required(t,e,r,o,i),void 0!==e&&E.enum(t,e,r,o,i)}n(o)},pattern:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(d(e,"string")&&!t.required)return n();E.required(t,e,r,o,i),d(e,"string")||E.pattern(t,e,r,o,i)}n(o)},date:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(d(e,"date")&&!t.required)return n();var a;if(E.required(t,e,r,o,i),!d(e,"date"))a=e instanceof Date?e:new Date(e),E.type(t,a,r,o,i),a&&E.range(t,a.getTime(),r,o,i)}n(o)},url:O,hex:O,email:O,required:function(t,e,n,r,i){var o=[],a=Array.isArray(e)?"array":typeof e;E.required(t,e,r,o,i,a),n(o)},any:function(t,e,n,r,i){var o=[];if(t.required||!t.required&&r.hasOwnProperty(t.field)){if(d(e)&&!t.required)return n();E.required(t,e,r,o,i)}n(o)}};function x(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var t=JSON.parse(JSON.stringify(this));return t.clone=this.clone,t}}}var k=x(),T=function(){function t(t){this.rules=null,this._messages=k,this.define(t)}var e=t.prototype;return e.define=function(t){var e=this;if(!t)throw new Error("Cannot configure a schema with no rules");if("object"!==typeof t||Array.isArray(t))throw new Error("Rules must be an object");this.rules={},Object.keys(t).forEach((function(n){var r=t[n];e.rules[n]=Array.isArray(r)?r:[r]}))},e.messages=function(t){return t&&(this._messages=g(x(),t)),this._messages},e.validate=function(e,n,i){var o=this;void 0===n&&(n={}),void 0===i&&(i=function(){});var a=e,u=n,s=i;if("function"===typeof u&&(s=u,u={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(null,a),Promise.resolve(a);if(u.messages){var c=this.messages();c===k&&(c=x()),g(c,u.messages),u.messages=c}else u.messages=this.messages();var l={};(u.keys||Object.keys(this.rules)).forEach((function(t){var n=o.rules[t],i=a[t];n.forEach((function(n){var u=n;"function"===typeof u.transform&&(a===e&&(a=r({},a)),i=a[t]=u.transform(i)),(u="function"===typeof u?{validator:u}:r({},u)).validator=o.getValidationMethod(u),u.validator&&(u.field=t,u.fullField=u.fullField||t,u.type=o.getType(u),l[t]=l[t]||[],l[t].push({rule:u,value:i,source:a,field:t}))}))}));var d={};return m(l,u,(function(e,n){var i,o=e.rule,s=("object"===o.type||"array"===o.type)&&("object"===typeof o.fields||"object"===typeof o.defaultField);function c(t,e){return r({},e,{fullField:o.fullField+"."+t,fullFields:o.fullFields?[].concat(o.fullFields,[t]):[t]})}function l(i){void 0===i&&(i=[]);var l=Array.isArray(i)?i:[i];!u.suppressWarning&&l.length&&t.warning("async-validator:",l),l.length&&void 0!==o.message&&(l=[].concat(o.message));var f=l.map(y(o,a));if(u.first&&f.length)return d[o.field]=1,n(f);if(s){if(o.required&&!e.value)return void 0!==o.message?f=[].concat(o.message).map(y(o,a)):u.error&&(f=[u.error(o,h(u.messages.required,o.field))]),n(f);var p={};o.defaultField&&Object.keys(e.value).map((function(t){p[t]=o.defaultField})),p=r({},p,e.rule.fields);var v={};Object.keys(p).forEach((function(t){var e=p[t],n=Array.isArray(e)?e:[e];v[t]=n.map(c.bind(null,t))}));var m=new t(v);m.messages(u.messages),e.rule.options&&(e.rule.options.messages=u.messages,e.rule.options.error=u.error),m.validate(e.value,e.rule.options||u,(function(t){var e=[];f&&f.length&&e.push.apply(e,f),t&&t.length&&e.push.apply(e,t),n(e.length?e:null)}))}else n(f)}if(s=s&&(o.required||!o.required&&e.value),o.field=e.field,o.asyncValidator)i=o.asyncValidator(o,e.value,l,e.source,u);else if(o.validator){try{i=o.validator(o,e.value,l,e.source,u)}catch(f){null==console.error||console.error(f),setTimeout((function(){throw f}),0),l(f.message)}!0===i?l():!1===i?l("function"===typeof o.message?o.message(o.fullField||o.field):o.message||(o.fullField||o.field)+" fails"):i instanceof Array?l(i):i instanceof Error&&l(i.message)}i&&i.then&&i.then((function(){return l()}),(function(t){return l(t)}))}),(function(t){!function(t){var e=[],n={};function r(t){var n;Array.isArray(t)?e=(n=e).concat.apply(n,t):e.push(t)}for(var i=0;i=0&&(e.hash=t.substr(n),t=t.substr(0,n));var r=t.indexOf("?");r>=0&&(e.search=t.substr(r),t=t.substr(0,r)),t&&(e.pathname=t)}return e}},function(t,e,n){"use strict";var r=n(21);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=r(n(359)),o=r(n(360)),a=r(n(361)),u=r(n(364)),s=r(n(367)),c=r(n(369)),l=r(n(370)),f=r(n(371)),h=function(){function t(e){(0,i.default)(this,t),this.app=e,this.region="us-central1",this.auth={applyActionCode:a.default.applyActionCode.bind(this),channel:a.default.channel.bind(this),confirmPasswordReset:a.default.confirmPasswordReset.bind(this),createUserWithEmailAndPassword:a.default.createUserWithEmailAndPassword.bind(this),deleteProfile:a.default.deleteProfile.bind(this),linkWithPopup:a.default.linkWithPopup.bind(this),linkWithRedirect:a.default.linkWithRedirect.bind(this),sendEmailVerification:a.default.sendEmailVerification.bind(this),sendPasswordResetEmail:a.default.sendPasswordResetEmail.bind(this),signInAndRetrieveDataWithCredential:a.default.signInAndRetrieveDataWithCredential.bind(this),signInAnonymously:a.default.signInAnonymously.bind(this),signInWithCredential:a.default.signInWithCredential.bind(this),signInWithCustomToken:a.default.signInWithCustomToken.bind(this),signInWithEmailAndPassword:a.default.signInWithEmailAndPassword.bind(this),signInWithPopup:a.default.signInWithPopup.bind(this),signInWithPhoneNumber:a.default.signInWithPhoneNumber.bind(this),signInWithRedirect:a.default.signInWithRedirect.bind(this),signOut:a.default.signOut.bind(this),unlink:a.default.unlink.bind(this),updateEmail:a.default.updateEmail.bind(this),updatePassword:a.default.updatePassword.bind(this),updateProfile:a.default.updateProfile.bind(this)},this.database={read:u.default.read.bind(this),create:u.default.create.bind(this),update:u.default.update.bind(this),patch:u.default.patch.bind(this),delete:u.default.delete.bind(this),channel:u.default.channel.bind(this),sync:u.default.sync.bind(this)},this.firestore={addDocument:s.default.addDocument.bind(this),channel:s.default.channel.bind(this),deleteDocument:s.default.deleteDocument.bind(this),getCollection:s.default.getCollection.bind(this),getDocument:s.default.getDocument.bind(this),setDocument:s.default.setDocument.bind(this),syncCollection:s.default.syncCollection.bind(this),syncDocument:s.default.syncDocument.bind(this),updateDocument:s.default.updateDocument.bind(this)},this.functions={call:c.default.call.bind(this)},this.messaging={channel:l.default.channel.bind(this),syncMessages:l.default.syncMessages.bind(this),syncToken:l.default.syncToken.bind(this),tokenRefreshChannel:l.default.tokenRefreshChannel.bind(this)},this.storage={uploadFile:f.default.uploadFile.bind(this),uploadString:f.default.uploadString.bind(this),getDownloadURL:f.default.getDownloadURL.bind(this),getFileMetadata:f.default.getFileMetadata.bind(this),updateFileMetadata:f.default.updateFileMetadata.bind(this),deleteFile:f.default.deleteFile.bind(this)}}return(0,o.default)(t,[{key:"projectId",value:function(){if(this._projectId)return this._projectId;var t=this.app.options.authDomain.match(/^([a-z0-9-]+)\.firebaseapp\.com$/)[1];return this._projectId=t,t}}]),t}();e.default=h},,,,,,,,,function(t,e,n){"use strict";function r(t){return function(e){var n=e.dispatch,r=e.getState;return function(e){return function(i){return"function"===typeof i?i(n,r,t):e(i)}}}}var i=r();i.withExtraArgument=r,e.a=i},function(t,e,n){"use strict";(function(t){var r=n(0),i=n.n(r),o=n(39),a=n(69),u=n.n(a),s="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof t?t:{};function c(t){var e=[];return{on:function(t){e.push(t)},off:function(t){e=e.filter((function(e){return e!==t}))},get:function(){return t},set:function(n,r){t=n,e.forEach((function(e){return e(t,r)}))}}}var l=i.a.createContext||function(t,e){var n,i,a="__create-react-context-"+function(){var t="__global_unique_id__";return s[t]=(s[t]||0)+1}()+"__",l=function(t){function n(){var e;return(e=t.apply(this,arguments)||this).emitter=c(e.props.value),e}Object(o.a)(n,t);var r=n.prototype;return r.getChildContext=function(){var t;return(t={})[a]=this.emitter,t},r.componentWillReceiveProps=function(t){if(this.props.value!==t.value){var n,r=this.props.value,i=t.value;((o=r)===(a=i)?0!==o||1/o===1/a:o!==o&&a!==a)?n=0:(n="function"===typeof e?e(r,i):1073741823,0!==(n|=0)&&this.emitter.set(t.value,n))}var o,a},r.render=function(){return this.props.children},n}(r.Component);l.childContextTypes=((n={})[a]=u.a.object.isRequired,n);var f=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).state={value:t.getValue()},t.onUpdate=function(e,n){0!==((0|t.observedBits)&n)&&t.setState({value:t.getValue()})},t}Object(o.a)(n,e);var r=n.prototype;return r.componentWillReceiveProps=function(t){var e=t.observedBits;this.observedBits=void 0===e||null===e?1073741823:e},r.componentDidMount=function(){this.context[a]&&this.context[a].on(this.onUpdate);var t=this.props.observedBits;this.observedBits=void 0===t||null===t?1073741823:t},r.componentWillUnmount=function(){this.context[a]&&this.context[a].off(this.onUpdate)},r.getValue=function(){return this.context[a]?this.context[a].get():t},r.render=function(){return(t=this.props.children,Array.isArray(t)?t[0]:t)(this.state.value);var t},n}(r.Component);return f.contextTypes=((i={})[a]=u.a.object,i),{Provider:l,Consumer:f}};e.a=l}).call(this,n(57))},,,,,function(t,e,n){"use strict";var r=n(21);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=r(n(410)).default;e.default=i},,function(t,e,n){"use strict";var r=n(21);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=r(n(414)).default;e.default=i},,function(t,e,n){"use strict";var r=n(21);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=r(n(418)).default;e.default=i},function(t,e,n){"use strict";n.d(e,"a",(function(){return T}));var r=n(24),i=n(39),o=n(0),a=n.n(o),u=n(4),s=n(120),c=(n(121),n(33));function l(t){return"/"===t.charAt(0)?t:"/"+t}function f(t){return"/"===t.charAt(0)?t.substr(1):t}function h(t,e){return function(t,e){return 0===t.toLowerCase().indexOf(e.toLowerCase())&&-1!=="/?#".indexOf(t.charAt(e.length))}(t,e)?t.substr(e.length):t}function d(t){return"/"===t.charAt(t.length-1)?t.slice(0,-1):t}function p(t){var e=t.pathname,n=t.search,r=t.hash,i=e||"/";return n&&"?"!==n&&(i+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(i+="#"===r.charAt(0)?r:"#"+r),i}function v(t,e,n,r){var i;"string"===typeof t?(i=function(t){var e=t||"/",n="",r="",i=e.indexOf("#");-1!==i&&(r=e.substr(i),e=e.substr(0,i));var o=e.indexOf("?");return-1!==o&&(n=e.substr(o),e=e.substr(0,o)),{pathname:e,search:"?"===n?"":n,hash:"#"===r?"":r}}(t)).state=e:(void 0===(i=Object(u.a)({},t)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==e&&void 0===i.state&&(i.state=e));try{i.pathname=decodeURI(i.pathname)}catch(o){throw o instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):o}return n&&(i.key=n),r?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=Object(s.a)(i.pathname,r.pathname)):i.pathname=r.pathname:i.pathname||(i.pathname="/"),i}function m(){var t=null;var e=[];return{setPrompt:function(e){return t=e,function(){t===e&&(t=null)}},confirmTransitionTo:function(e,n,r,i){if(null!=t){var o="function"===typeof t?t(e,n):t;"string"===typeof o?"function"===typeof r?r(o,i):i(!0):i(!1!==o)}else i(!0)},appendListener:function(t){var n=!0;function r(){n&&t.apply(void 0,arguments)}return e.push(r),function(){n=!1,e=e.filter((function(t){return t!==r}))}},notifyListeners:function(){for(var t=arguments.length,n=new Array(t),r=0;r=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}n.d(e,"a",(function(){return r}))},function(t,e,n){"use strict";var r=n(4),i=n(8),o=n(0),a=n(9),u=n.n(a),s=n(72),c=n(125),l={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(t){var e=t.keyCode;if(t.altKey&&!t.ctrlKey||t.metaKey||e>=l.F1&&e<=l.F12)return!1;switch(e){case l.ALT:case l.CAPS_LOCK:case l.CONTEXT_MENU:case l.CTRL:case l.DOWN:case l.END:case l.ESC:case l.HOME:case l.INSERT:case l.LEFT:case l.MAC_FF_META:case l.META:case l.NUMLOCK:case l.NUM_CENTER:case l.PAGE_DOWN:case l.PAGE_UP:case l.PAUSE:case l.PRINT_SCREEN:case l.RIGHT:case l.SHIFT:case l.UP:case l.WIN_KEY:case l.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(t){if(t>=l.ZERO&&t<=l.NINE)return!0;if(t>=l.NUM_ZERO&&t<=l.NUM_MULTIPLY)return!0;if(t>=l.A&&t<=l.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===t)return!0;switch(t){case l.SPACE:case l.QUESTION_MARK:case l.NUM_PLUS:case l.NUM_MINUS:case l.NUM_PERIOD:case l.NUM_DIVISION:case l.SEMICOLON:case l.DASH:case l.EQUALS:case l.COMMA:case l.PERIOD:case l.SLASH:case l.APOSTROPHE:case l.SINGLE_QUOTE:case l.OPEN_SQUARE_BRACKET:case l.BACKSLASH:case l.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},f=l,h=n(198),d=n(51),p=n(70),v=n(68),m=n(52),y=n(74),g=n(176),b=n(32),w=n(94),_=n(177),E=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"===typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(t);i=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|t}function p(t,e){if(s.isBuffer(t))return t.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!==typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return V(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return B(t).length;default:if(r)return V(t).length;e=(""+e).toLowerCase(),r=!0}}function v(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return A(this,e,n);case"utf8":case"utf-8":return k(this,e,n);case"ascii":return T(this,e,n);case"latin1":case"binary":return I(this,e,n);case"base64":return x(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function m(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function y(t,e,n,r,i){if(0===t.length)return-1;if("string"===typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"===typeof e&&(e=s.from(e,r)),s.isBuffer(e))return 0===e.length?-1:g(t,e,n,r,i);if("number"===typeof e)return e&=255,s.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):g(t,[e],n,r,i);throw new TypeError("val must be string, number or Buffer")}function g(t,e,n,r,i){var o,a=1,u=t.length,s=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;a=2,u/=2,s/=2,n/=2}function c(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){var l=-1;for(o=n;ou&&(n=u-s),o=n;o>=0;o--){for(var f=!0,h=0;hi&&(r=i):r=i;var o=e.length;if(o%2!==0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a>8,i=n%256,o.push(i),o.push(r);return o}(e,t.length-n),t,n,r)}function x(t,e,n){return 0===e&&n===t.length?r.fromByteArray(t):r.fromByteArray(t.slice(e,n))}function k(t,e,n){n=Math.min(t.length,n);for(var r=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+f<=n)switch(f){case 1:c<128&&(l=c);break;case 2:128===(192&(o=t[i+1]))&&(s=(31&c)<<6|63&o)>127&&(l=s);break;case 3:o=t[i+1],a=t[i+2],128===(192&o)&&128===(192&a)&&(s=(15&c)<<12|(63&o)<<6|63&a)>2047&&(s<55296||s>57343)&&(l=s);break;case 4:o=t[i+1],a=t[i+2],u=t[i+3],128===(192&o)&&128===(192&a)&&128===(192&u)&&(s=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&u)>65535&&s<1114112&&(l=s)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),i+=f}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var n="",r=0;for(;r0&&(t=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(t+=" ... ")),""},s.prototype.compare=function(t,e,n,r,i){if(!s.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),e<0||n>t.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&e>=n)return 0;if(r>=i)return-1;if(e>=n)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(e>>>=0),u=Math.min(o,a),c=this.slice(r,i),l=t.slice(e,n),f=0;fi)&&(n=i),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return b(this,t,e,n);case"utf8":case"utf-8":return w(this,t,e,n);case"ascii":return _(this,t,e,n);case"latin1":case"binary":return E(this,t,e,n);case"base64":return O(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,t,e,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;ir)&&(n=r);for(var i="",o=e;on)throw new RangeError("Trying to access beyond buffer length")}function N(t,e,n,r,i,o){if(!s.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function j(t,e,n,r){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-n,2);i>>8*(r?i:1-i)}function R(t,e,n,r){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-n,4);i>>8*(r?i:3-i)&255}function D(t,e,n,r,i,o){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function M(t,e,n,r,o){return o||D(t,0,n,4),i.write(t,e,n,r,23,4),n+4}function L(t,e,n,r,o){return o||D(t,0,n,8),i.write(t,e,n,r,52,8),n+8}s.prototype.slice=function(t,e){var n,r=this.length;if((t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e0&&(i*=256);)r+=this[t+--e]*i;return r},s.prototype.readUInt8=function(t,e){return e||P(t,1,this.length),this[t]},s.prototype.readUInt16LE=function(t,e){return e||P(t,2,this.length),this[t]|this[t+1]<<8},s.prototype.readUInt16BE=function(t,e){return e||P(t,2,this.length),this[t]<<8|this[t+1]},s.prototype.readUInt32LE=function(t,e){return e||P(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},s.prototype.readUInt32BE=function(t,e){return e||P(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},s.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||P(t,e,this.length);for(var r=this[t],i=1,o=0;++o=(i*=128)&&(r-=Math.pow(2,8*e)),r},s.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||P(t,e,this.length);for(var r=e,i=1,o=this[t+--r];r>0&&(i*=256);)o+=this[t+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},s.prototype.readInt8=function(t,e){return e||P(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},s.prototype.readInt16LE=function(t,e){e||P(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt16BE=function(t,e){e||P(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt32LE=function(t,e){return e||P(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},s.prototype.readInt32BE=function(t,e){return e||P(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},s.prototype.readFloatLE=function(t,e){return e||P(t,4,this.length),i.read(this,t,!0,23,4)},s.prototype.readFloatBE=function(t,e){return e||P(t,4,this.length),i.read(this,t,!1,23,4)},s.prototype.readDoubleLE=function(t,e){return e||P(t,8,this.length),i.read(this,t,!0,52,8)},s.prototype.readDoubleBE=function(t,e){return e||P(t,8,this.length),i.read(this,t,!1,52,8)},s.prototype.writeUIntLE=function(t,e,n,r){(t=+t,e|=0,n|=0,r)||N(this,t,e,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+n},s.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,1,255,0),s.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},s.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):j(this,t,e,!0),e+2},s.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):j(this,t,e,!1),e+2},s.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):R(this,t,e,!0),e+4},s.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):R(this,t,e,!1),e+4},s.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);N(this,t,e,n,i-1,-i)}var o=0,a=1,u=0;for(this[e]=255&t;++o>0)-u&255;return e+n},s.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);N(this,t,e,n,i-1,-i)}var o=n-1,a=1,u=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===u&&0!==this[e+o+1]&&(u=1),this[e+o]=(t/a>>0)-u&255;return e+n},s.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,1,127,-128),s.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},s.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):j(this,t,e,!0),e+2},s.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):j(this,t,e,!1),e+2},s.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):R(this,t,e,!0),e+4},s.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),s.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):R(this,t,e,!1),e+4},s.prototype.writeFloatLE=function(t,e,n){return M(this,t,e,!0,n)},s.prototype.writeFloatBE=function(t,e,n){return M(this,t,e,!1,n)},s.prototype.writeDoubleLE=function(t,e,n){return L(this,t,e,!0,n)},s.prototype.writeDoubleBE=function(t,e,n){return L(this,t,e,!1,n)},s.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e=0;--i)t[i+e]=this[i+n];else if(o<1e3||!s.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"===typeof t)for(o=e;o55295&&n<57344){if(!i){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(e-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function B(t){return r.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(F,"")).length<2)return"";for(;t.length%4!==0;)t+="=";return t}(t))}function z(t,e,n,r){for(var i=0;i=e.length||i>=t.length);++i)e[i+n]=t[i];return i}}).call(this,n(57))},function(t,e,n){"use strict";n(93),n(329)},,,,,function(t,e,n){"use strict";var r=n(155),i=60103,o=60106;e.Fragment=60107,e.StrictMode=60108,e.Profiler=60114;var a=60109,u=60110,s=60112;e.Suspense=60113;var c=60115,l=60116;if("function"===typeof Symbol&&Symbol.for){var f=Symbol.for;i=f("react.element"),o=f("react.portal"),e.Fragment=f("react.fragment"),e.StrictMode=f("react.strict_mode"),e.Profiler=f("react.profiler"),a=f("react.provider"),u=f("react.context"),s=f("react.forward_ref"),e.Suspense=f("react.suspense"),c=f("react.memo"),l=f("react.lazy")}var h="function"===typeof Symbol&&Symbol.iterator;function d(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n